使用后缀将两种不同的语言合并到一个SOLR索引中-然后如何查询


Merge 2 different languages into into single SOLR index using suffix - then how to query

我知道关于solr有类似的问题,我都读了,其中一些给出了见解,但不是我想要做的解决方案。

  1. 我有一个表事件,其中包含列eventid,名称,英文描述
  2. 我有一个表esp_events包含列eventID,名称,西班牙语描述

现在我们只索引英文版本,所以我想把西班牙语版本也添加到solr索引中。由于两个表中的eventid是相同的,我不想在索引部分包含它,但显然我们需要它来使用相同的eventid从两个表中提取数据。

我的问题是:

  1. 如何定义要索引的数据(name, name_esp, description, description_esp)
  2. 我是否需要定义数据来源的表-如果是-如何完成。
  3. 我如何告诉php应用程序请求针对正在搜索的字段的英语或西班牙语版本进行搜索?

我没有设置SOLR的原始配置,所以我很感激你让我知道哪些文件需要修改才能使这一切正常工作。例如,solr-config.xml和schema.xml -加上任何我不知道的。

我也愿意接受一个完全不同的解决方案,只要它不是太复杂。

谢谢。

这通常是通过在模式中为每种语言(如name_en, name_es, description_en, description_es等)提供单独的字段版本来实现的。

如果使用DIH,可以在查询中执行连接(或使用嵌套实体),也可以从备选语言表中检索字段。

如果你知道你要查询的语言,你可以使用qf(查询字段)告诉Solr要搜索哪些字段。如果搜索是西班牙语,name_es,description_es,如果是英语,name_en,description_en

在Solr的最新版本(3.5及更高版本)中还有一个显式语言检测的特性。