apache - 在 Apache Lucene(4.2.0) 文档中搜索某处
问题描述
我在 lucene 中有多个文档,其中包含这种格式的数据
实体:Dalveer Singh
子类型:学生
....等等
我想在具有值的实体(例如实体)中搜索。如果我搜索:(dalveer*
值的开始)它会返回一些结果,但当我搜索中间的东西时不会返回*singh
or *veer*
。
有没有办法在整行中搜索匹配的结果?
解决方案
这是您必须调整的 QueryParser 配置。通常,您可以选择允许 QueryParser 使用前导通配符。作为带有方法的示例StandardQueryParser:
setAllowLeadingWildcard(true)
它还取决于您使用哪种字段进行索引,因为这会影响分析过程。
- TextField 用于全文搜索 -> 文本不会被标记
- StringField -> 文本将被标记化
有关这方面的更多信息,请参阅Field JavaDoc。