lucene - 使用Lucene,如果有人搜索 “red barn”,您还如何返回包含 “redbarn”的结果?

标签 lucene elasticsearch

我有一个有效的搜索,如果有人搜索两个单独的词(例如“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/

相关文章:

java - lucene 4.10.2中生成多个CFS文件

elasticsearch - 基于字段的动态映射Elasticsearch

elasticsearch - 如何更新文档集的routingId

elasticsearch - 是否有适用于 DC/OS、ElasticSearch、Kafka Connect 和 Kafka Streams 的 CloudFormation 模板?

elasticsearch - 没有红色状态似乎无法重新启动Elastic Search

lucene - 您可以在更新索引时从 lucene 索引中读取数据吗

java - Elasticsearch 提高查询性能

ElasticSearch .NET 嵌套子聚合

java - 如何使用 Lucene、Highlighter 和 StandardAnalyzer 通过 Hibernate 搜索引擎获取文本片段

java - Solr 中的评分