我有一个有效的搜索,如果有人搜索两个单独的词(例如“red barn”,Lucene可以很好地返回包含“red barn”,“barn red”和“大棕色谷仓旁边的红色拖拉机”的记录) ”,那很好,但是结果不会返回任何包含“redbarn”的内容(除非您专门搜索“redbarn”,但是您不会得到“redbarn”记录)。
我现在只是在使用标准分析仪,但是不确定要更改什么才能获取我想要的所有记录。
如果有关系的话,我会在ElasticSearch之上使用NEST客户端(这是内部的Lucene)。我已经研究了各种可用的分析器和属性,但没有找到合适的组合来完成此任务。
最佳答案
最好的方法是编写一个将“redbarn”标记为[“red”,“barn”]的分析器。 Lucene已经在德语中使用它,例如,您可以查看DictionaryCompoundWordTokenFilter。
关于lucene - 使用Lucene,如果有人搜索 “red barn”,您还如何返回包含 “redbarn”的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11505464/