我已经在drupal 7中集成了apache solr搜索模块,并且工作正常。 我需要一些关于如何为我的apache solr搜索结果实现排序和分页的帮助。
我已修改schema.xml文件以指定可用于排序的所有字段。从我的drupal的solr模块索引时,我获得了带有排序选项的所有字段的列表。
因此,请指导我在搜索结果表中实现列式排序的下一步操作。
答案 0 :(得分:0)
首先,您需要为要排序的字段添加索引。这将使solr的重新索引生效
function MY_MODULE_apachesolr_index_document_build_node(ApacheSolrDocument $document, $entity, $entity_type, $env_id) {
if(isset($entity->your_field['und'][0]['value'])){
$your_field = $entity->your_field['und'][0]['value'];
$document->addField('ss_your_field', $last_name);
}
}
请注意' ss'这里是字段solr的类型,它将第一个字符串识别为字符串,第二个字符串为“单个字符串”。而不是“多重”。只能按单个字段排序。
然后更改搜索查询以使排序可用并使用如下:
function MY_MODULE_apachesolr_query_prepare(&$query){
$query->setAvailableSort('ss_your_field', array('title' => t('Field Name'), 'default' => 'asc'));
$query->setSolrSort('ss_your_field', 'asc');
}