I want to add an indexed field to a Search API query in code. My query currently looks like this:
$index = search_api_index_load("default_node_index"); $query=new SearchApiQuery($index); $query->condition('type', 'answers_question', '='); $filter = $query->createFilter('OR'); $filter->condition('title', $text, '='); $filter->condition('body:value', $text, '='); $query->sort('search_api_relevance', DESC); $query->fields(array('title')); $query->filter($filter); $query->keys($text); $data=$query->execute();
This returns the correct results, however the result set is composed of an array of arrays with an ‘id’ and a ‘score’. I want the indexed node title to be returned as well. I cannot do a join to the node table as ->join is not available on SearchApiQuery.
The statement:
$query->fields(array('title'));
does not seem to do anything.
I have this same query set up in a view where it is working properly. When I inspect the query at hook_search_api_query_alter I cannot see where or how the title is added.
How do I add the indexed title as a field to be returned in the result set?