我知道关于solr有类似的问题,我都读了,其中一些给出了见解,但不是我想要做的解决方案。
- 我有一个表事件,其中包含列eventid,名称,英文描述
- 我有一个表esp_events包含列eventID,名称,西班牙语描述
现在我们只索引英文版本,所以我想把西班牙语版本也添加到solr索引中。由于两个表中的eventid是相同的,我不想在索引部分包含它,但显然我们需要它来使用相同的eventid从两个表中提取数据。
我的问题是:
- 如何定义要索引的数据(name, name_esp, description, description_esp)
- 我是否需要定义数据来源的表-如果是-如何完成。
- 我如何告诉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及更高版本)中还有一个显式语言检测的特性。