1

我已经在 drupal 7 中集成了 apache solr 搜索模块,并且工作正常。我需要一些关于如何为我的 apache solr 搜索结果实现排序和分页的帮助。

我已修改 schema.xml 文件以指定哪些是所有可用于排序的字段。从我的 drupal 的 solr 模块索引时,我得到所有字段的列表以及排序选项。

因此,请指导我下一步如何在搜索结果表中实现按列排序。

4

1 回答 1

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 将其识别为第一个 s 用于字符串,第二个 s 用于“single”而不是“multiple”。只能对单个字段进行排序。

然后更改搜索查询以使排序可用并像这样使用:

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');
}
于 2015-04-23T19:09:21.513 回答