java - 在 ANTLR for Lucene 中查询解析

标签 java lucene antlr antlr3

可能会合并几个问题,但是上下文是一样的。

背景:我需要为 Lucene 实现自定义查询解析。原因是我没有在 Lucene 中存储一些字段,而是将它们保存在一个单独的数据库中,因为它们更改得太频繁了。该字段为分类类别,即cat

所以,我想像这样解析查询:

(cat:important and hello) or (cat:not_important and hi)

是否有适用于类似 Lucene 的语言的任何标准 ANTLR4 查询解析器(或示例)? 有没有一种方法可以引入自定义 QueryNode,而不需要我从头开始重写所有内容(Sytax、QueryBuilders 等)?

非常感谢大家!!!

最佳答案

我什至会:

  1. 修改原文StandardQueryParser.jj文件,在 JavaCC 的帮助下生成另一个 QueryParser (它像 AntLR 一样生成 LL 下降解析器),

  2. 翻译原文StandardQueryParser.jj将文件转换为正确的 AntLR 语法语法,或者

  3. 检查 ExtendableQueryParser 是否不足以处理此类字段。

关于java - 在 ANTLR for Lucene 中查询解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14566231/

相关文章:

java - 以编程方式添加时无法识别带重音的 GWT 字符

elasticsearch - 在不同索引上组合休眠搜索查询的最佳方法

java - Java 中使用空格引发 Antlr NoViableAltException

ANTLR 制作用于解析插入/更新/删除 SQL 查询的语法

java - 通过 facebook sdk 共享自定义文本状态

Javamail : Not able to send an email with message body, 文本/html 和附件。

java - JPanel 不可见

java - Lucene 能否从单个索引文件返回多个搜索结果?

java - 卢塞恩 3 : Where is StandardAnalyzer?

ANTLR4 力 LL(1)