可能会合并几个问题,但是上下文是一样的。
背景:我需要为 Lucene 实现自定义查询解析。原因是我没有在 Lucene 中存储一些字段,而是将它们保存在一个单独的数据库中,因为它们更改得太频繁了。该字段为分类类别,即cat
所以,我想像这样解析查询:
(cat:important and hello) or (cat:not_important and hi)
是否有适用于类似 Lucene 的语言的任何标准 ANTLR4 查询解析器(或示例)? 有没有一种方法可以引入自定义 QueryNode,而不需要我从头开始重写所有内容(Sytax、QueryBuilders 等)?
非常感谢大家!!!
最佳答案
我什至会:
修改原文StandardQueryParser.jj文件,在 JavaCC 的帮助下生成另一个
QueryParser
(它像 AntLR 一样生成 LL 下降解析器),翻译原文StandardQueryParser.jj将文件转换为正确的 AntLR 语法语法,或者
检查
ExtendableQueryParser
是否不足以处理此类字段。
关于java - 在 ANTLR for Lucene 中查询解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14566231/