Solr用作第三方系统的搜索引擎。有时,客户使用错误的键盘布局键入他们的请求,例如俄语单词“привет”(hi)的键入方式类似于“ ghbdtn”。我正在寻找可能的SOLR功能,以将其转换为正确的键盘布局。
我尝试了几种过滤器,例如SnowballPorterFilterFactory和SynonymFilterFactory,但是很难在所有情况下都填写摘要。
是否可以为此任务调整SOLR,或者应该将其转换为其他系统?
如果有任何建议,我将不胜感激。如果我的请求可以用Java修复,请提供适当的库文件
答案 0 :(得分:1)
您可以add a MappingCharFilter进入您的处理链。第一步,添加带有MappingCharFilter的新字段类型,然后使用copyField
指令将相同的数据也添加到新字段中。
映射文件将是两个键盘布局之间的一组字符映射:
"п" => "g"
"р" => "h"
"и" => "b"
..等等
然后,您也可以通过在您的edismax查询中使用权重使用qf
对新字段评分低于正确字段。
答案 1 :(得分:0)
好吧,我发现了另一种解决方案,可能它没有连接到SOLR本身。
如果SOLR对于错误请求未返回任何内容,我将再做一次,将字母从俄语更改为英语。这是在创建请求时由第三方系统处理的。
如果您有更简便的方法或有任何评论-请发布。