首页 > 解决方案 > 在 Apache Lucene(4.2.0) 文档中搜索某处

问题描述

我在 lucene 中有多个文档,其中包含这种格式的数据

实体:Dalveer Singh
子类型:学生
....等等

我想在具有值的实体(例如实体)中搜索。如果我搜索:(dalveer*值的开始)它会返回一些结果,但当我搜索中间的东西时不会返回*singhor *veer*

有没有办法在整行中搜索匹配的结果?

标签: apachelucene

解决方案


这是您必须调整的 QueryParser 配置。通常,您可以选择允许 QueryParser 使用前导通配符。作为带有方法的示例StandardQueryParser

setAllowLeadingWildcard(true)

它还取决于您使用哪种字段进行索引,因为这会影响分析过程。

  • TextField 用于全文搜索 -> 文本不会被标记
  • StringField -> 文本将被标记化

有关这方面的更多信息,请参阅Field JavaDoc


推荐阅读