多语言搜索索引

Joh*_*ohn 1 solr

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

"Hello World,Bonjour le Monde,Hallo Welt."

它将"Hello World"复制到文本字段中,将"Bonjour le Monde"复制到fr文本字段中,将"Hallo Welt"复制到de-text字段中.每个字段都有相应的语言分析器来标记和限制单词.

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

Tre*_*rey 8

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

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

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

大多数分析都很快.您的性能界限主要取决于您的索引大小,总学期数等.请务必根据维基上的solr性能指南调整所有内容.我目前正在运行一个60GB的索引并继续在硬件上获得100毫秒以下的搜索范围.