多语言Solr搜索索引

问题描述:

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

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

它将“Hello World”复制到文本字段中,将“Bonjour le Monde”复制到fr文本字段中,并将“Hallo Welt”复制到解除文本字段中。每个领域都有适当的语言分析器来标记和扼杀词汇。

最后,我想为用户输入一个框,以输入将在所有语言中搜索的搜索词。搜索条件不需要翻译,但它们应该适当地加以阻止。什么是完成这个最好的方法?我也很关心搜索的性能。

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

所以,如果您的查询看起来像 /Solr的/选择?QT = dismax & QF = EN-文本%20FR文本%20de文本& Q =你好%的世界 的Solr会做正确的事。

(假设你配置dismax如在solrconfig.xml中一个requestHandler块solr.DisMaxRequestHandler)

大多数分析是快速。你的表现范围主要取决于你的指数大小,总学期数量等。一定要根据他们wiki上的solr perfomance指南调整一切。目前我正在运行一个60GB的索引,并继续在硬件上在100ms以下的范围内进行搜索,这些并不是那么有趣。