使用后缀将2种不同语言合并为单个SOLR索引 - 然后如何查询

时间:2014-07-01 19:14:03

标签: php solr indexing multiple-languages

我知道有关于solr的类似问题我会全部阅读,有些人会提供见解,但不能解决我想要做的事情。

  1. 我有一个包含列eventid,name,description in English
  2. 的表事件
  3. 我有一个表esp_events,其中包含列eventAC,名称,西班牙语描述
  4. 现在我们只索引英文版本,所以我想将西班牙语版本添加到solr索引中。由于两个表中的eventid相同,我不希望将其包含在索引部分中,但显然我们需要它使用相同的eventid从两个表中提取数据。

    所以我的问题是:

    1. 如何定义要编制索引的数据(name,name_esp,description,description_esp)。
    2. 我是否需要定义数据来源的表格 - 如果是这样 - 如何完成。
    3. 如何告诉php应用程序请求针对正在搜索的字段的英语或西班牙语版本进行搜索。
    4. 我没有为SOLR设置原始配置,所以我很感激您让我知道需要修改哪些文件才能使这一切正常运行。例如solr-config.xml和schema.xml - 以及我不知道的任何内容。

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

      感谢。

1 个答案:

答案 0 :(得分:1)

这通常通过在每种语言的架构中使用单独的字段版本来实现,例如name_enname_esdescription_endescription_es等。你写)。

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

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

最新版本的Solr(3.5及更高版本)中还有一项功能可用于显式Language Detection