0

我知道关于 solr 也有类似的问题,我全部阅读了它们,其中一些给出了见解,但不是我想要做的确切的解决方案。

  1. 我有一个表事件,其中包含列 eventid、name、description 英文
  2. 我有一个表 esp_events,其中包含列 eventID、name、description 西班牙语

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

所以我的问题是:

  1. 如何定义要索引的数据(名称、名称_esp、描述、描述_esp)。
  2. 我是否需要定义一个数据来源的表 - 如果是这样 - 那是如何完成的。
  3. 我如何告诉 php 应用程序请求针对正在搜索的字段的英语或西班牙语版本进行搜索。

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

我也愿意接受与我概述的解决方案完全不同的解决方案——只要它不太复杂。

谢谢。

4

1 回答 1

1

这通常是通过在架构中为每种语言设置不同版本的字段来实现的,例如name_enname_esdescription_endescription_es(如您所写)。

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

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

Solr 的最新版本(3.5 及更高版本)中还有一个用于显式语言检测的功能。

于 2014-07-01T21:47:53.450 回答