1

I have several custom modules that load and display data from custom tables. I have successfully managed to use the drupal search on these contents, using the drupal search hooks like, hook_update_index, hook_search_execute, etc. But now we have decided to use solr instead. Now I'm totally confused and don't know how to make solr index my custom data. The closest I've come to solving this is to this:

function msearch_apachesolr_index_document_build(&$document, $entity, $entity_type) {
    if ($entity_type == 'people' && isset($entity->description)) {
        $document->addField('s_firstname', 
                $entity->field_firstname['und'][0]['value']);
        $document->addField('s_lastname', 
                $entity->field_lastname['und'][0]['value']);
        $document->addField('ts_description', $entity->description);
    }
}

This code does not work(as in indexing my data) and it really shouldn't. There's no way that the $entity passed to this hook could have my desired data in it. Is there something I should do to manually pass the object to this hook? Do I need to implement hook_cron and do this there?

Thanks, any help is appreciated

PS:

I know how solr indexes data, through POST requests to solr/corename/update, but I doubt that's the way to go. If I had to go this way, I would've had to implement the whole mechanisms for indexing rows and making sure no duplicates were sent for indexing. OR SHOULD IT BE EXACTLY LIKE THIS???

1
  • search_api_index_items($index).
    – Sohail
    Sep 29 '15 at 14:49
0
function msearch_group_apachesolr_query_alter($query){
     $query->addParams(array('fl' => array('ss_firstname')));
 //  $query->addParams(array('fl' => array('ss_lastname')));
}
1
  • 2
    Please don't post code only answers; while it may solve the problem it doesn't explain WHY it solves the problem.
    – Shawn Conn
    Sep 29 '15 at 15:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.