In particular I used modify_query to add a field to the $params['fl'] and was disappointed that the field wasn't automatically available to me in the search results. It was, in fact, available, but only through the badly named 'node' element of the array which contained the Apache_Solr_Document. I could have used the $result['node']->getField('blah'); method but imo this assumes too much knowledge of the phpclient library.
To make it easier to deal with this patch does two things.
1. renames 'node' to 'document'. Note that this creates some mismatch between the array and the theme layer. If it causes problems we have to address the theme layer.
2. iterates over the Apache_Solr_Document and makes an array of its fields called $result['fields'] for easy access.
| Comment | File | Size | Author |
|---|---|---|---|
| #9 | 623046-better-results-6x-1x-9.patch | 1.12 KB | pwolanin |
| #6 | apachesolr-623046_1-D5.patch | 2.56 KB | claudiu.cristea |
| #4 | apachesolr-623046-D5.patch | 2.3 KB | claudiu.cristea |
| #1 | results.patch | 879 bytes | robertdouglass |
| results.patch | 1 KB | robertdouglass |
Comments
Comment #1
robertdouglass commentedHere's a version without renaming node->document. A little less disruptive.
Comment #2
robertdouglass commentedCommitted to DRUPAL-6--2. Marking to be ported.
Comment #3
robertdouglass commentedComment #4
claudiu.cristeaHere's a patch for 5.x-2.x-dev.
Note that I've also moved the comment count generation (
$extra[] = format_plural($doc->comment_count, '1 comment', '@count comments');) abovedrupal_alter('apachesolr_search_result', $doc);(as is in 6.x-2.x-dev) so modules can alter also that value. I think this should also be fixed in 6.x-1.x-dev.Comment #5
robertdouglass commentedClaudiu - better not to mix up two things in one patch. Can you start a new issue with the shuffling of the $extra and drupal_alter?
Comment #6
claudiu.cristeaSure... Here's the patch for 5.x-2.x-dev
Comment #7
claudiu.cristeaCommitted in DRUPAL-5--2, #317518
Switched for backporting in 6.x-1.x-dev.
Comment #8
pwolanin commentedI don't think you actually have to use the getField() method.
Comment #9
pwolanin commentedComment #10
pwolanin commentedcommitted to 6.x-1.x