1

我正在建立一个 Solr 搜索引擎,它将索引多种语言。我创建了一个自定义 UpdateProcessorFactory 来确定输入文本的哪些部分是哪种语言,然后我将文档的这些部分复制到特定于语言的字段中。例如,使用此文本:

“你好世界,你好世界,你好世界。”

它将“Hello World”复制到 en-text 字段中,将“Bonjour le Monde”复制到 fr-text 字段中,并将“Hallo Welt”复制到 de-text 字段中。每个字段都有适当的语言分析器来标记和词干单词。

最后,我希望有一个框供用户输入可以搜索所有语言的搜索词。搜索词不需要翻译,但应该适当地词干。实现这一目标的最佳方法是什么?我也非常关心搜索的性能。

4

1 回答 1

8

最好的方法是使用DisMaxRequestHandler。它将针对适当的语言(如 schema.xml 中定义)适当地分析每个字段。

因此,如果您的查询看起来像 /solr/select?qt=dismax&qf=en-text%20fr-text%20de-text&q=hello%world Solr 会做正确的事情。

(假设您在 solrconfig.xml 的 requestHandler 块中将 dismax 配置为 solr.DisMaxRequestHandler)

大多数分析速度很快。您的性能界限主要取决于您的索引大小、总术语数等。请务必根据 wiki 上的 solr 性能指南调整所有内容。我目前正在运行一个 60GB 的索引,并继续在不那么花哨的硬件上获得低于 100 毫秒范围内的搜索。

于 2009-05-02T01:26:20.177 回答