Solr - 搜索多种语言返回重复项

时间:2017-08-10 08:28:12

标签: search drupal solr

我想搜索多种语言(翻译),但是当我为每种语言返回重复结果时。我正在使用Drupal和Search API Solr进行索引。结果如下所示:

[results] => Array
        (
            [3239/en] => Array
                (
                    [id] => 3239/en
                    [score] => 1
                    [fields] => Array
                        (
                            [search_api_id] => 3239/en
                            [search_api_relevance] => 1
                        )

                )

            [3240/en] => Array
                (
                    [id] => 3240/en
                    [score] => 1
                    [fields] => Array
                        (
                            [search_api_id] => 3240/en
                            [search_api_relevance] => 1
                        )

                )

因此id和语言都包含在key / id中。目前,我可以使用以下代码过滤语言:

$index = search_api_index_load('default_multilingual_node_index');
$query = $index->query();
$query->keys($search_terms);

$filter = $query->createFilter('OR');
$filter->condition('search_api_language', $language);
$query->filter($filter);

$results = $query->execute();

我一直在寻找一种方法(Solr配置或Drupal Search API调用)能够跨多种语言进行搜索而无需重复。有没有解决方案?

1 个答案:

答案 0 :(得分:0)

您使用的是以下模块吗?

https://www.drupal.org/project/apachesolr_multilingual(对于drupal 7) https://www.drupal.org/project/search_api_solr_multilingual(对于drupal 8)

更好地支持非英语语言并支持多语种搜索