多语言搜索索引

时间:2009-05-01 21:22:52

标签: solr

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

“Hello World,Bonjour le Monde,Hallo Welt。”

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

最后,我希望有一个框供用户输入可搜索所有语言的搜索字词。搜索词不需要翻译,但应适当地删除。完成此任务的最佳方法是什么?我也非常关注搜索的性能。

1 个答案:

答案 0 :(得分:8)

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

所以,如果您的查询看起来像 / Solr的/ QT选择= dismax和放大器; QF = EN-文本%20FR文本%20de文本和放大器; Q =你好%的世界 索尔将做正确的事。

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

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