java - Lucene解析不一致
问题描述
我在试用 Lucene 时不一致。
- 下面有 2 个函数,一个使用代码构建查询,另一个使用与查询生成的相同文本。
- 两者都在相同的搜索器和 Lucene 索引上执行。
- Lucene“数据库”由具有组 5、10、15 和 20 的单个文档组成。
- 单个文档确实包含“Kotlin”作为内容
然而,当我执行搜索时;getCodeBased 查询返回 0 个文档;而 getTextBased 查询返回 1 个文档。这怎么可能; 特别是因为我使用了从 getCodeBased 生成的查询文本并将其输入 getTextBased ...
问候和感谢
private fun getCodeBased() : Query {
val term1 = Term("contents", "Kotlin")
val term2 = Term("group", "6")
val term3 = Term("group", "20")
val subQuery = BooleanQuery.Builder()
.add(TermQuery(term2), BooleanClause.Occur.SHOULD)
.add(TermQuery(term3), BooleanClause.Occur.SHOULD)
.build()
val query = BooleanQuery.Builder()
.add(TermQuery(term1), BooleanClause.Occur.MUST)
.add(subQuery, BooleanClause.Occur.MUST)
.build()
println(query.toString())
return query
}
private fun getTextBased() : Query {
val mfq = MultiFieldQueryParser(arrayOf("contents", "group"), StandardAnalyzer())
val query = mfq.parse("+contents:Kotlin +(group:6 group:20)") // working
return query
}
解决方案
推荐阅读
- javascript - 如何检查动态元素是否可用/已加载?
- angularjs - angular-translate - 同一个翻译键中的变量和插值
- c# - Winform 字体在已部署机器上运行时更改
- java - Elastic Stack - 带有完整 JSON 请求和响应的 REST API 日志记录
- python - 从另一个 Python 脚本运行 Python 脚本时处理异常
- loopbackjs - 用户模型在 loopback3 中给出电子邮件验证错误
- docker - 容器中进程的虚拟内存含义
- c# - 输入字符串的格式不正确 - 插入数据库
- ruby-on-rails - 使用 Rubocop 重构 Rails 应用程序的最佳方法
- c# - OnCollisionEnter 函数如何“从根本上”工作?