parsing - Lucene 解析器异常中标签的含义
问题描述
我想显示来自 Lucene 的人类可读的解析错误。隐藏在 ElasticsearchException 中被抑制的异常中的是一些关于导致解析器错误的真正有用的信息。例如
"Encountered \"<EOF>\" at line 1, column 32.\nWas expecting one of:\n <AND> ...\n <OR> ...\n <NOT> ...\n \"+\" ...\n \"-\" ...\n <BAREOPER> ...\n \"(\" ...\n \")\" ...\n \"*\" ...\n \"^\" ...\n <QUOTED> ...\n <TERM> ...\n <FUZZY_SLOP> ...\n <PREFIXTERM> ...\n <WILDTERM> ...\n <REGEXPTERM> ...\n \"[\" ...\n \"{\" ...\n <NUMBER> ...\n "
它们来自 QueryParserConstants 并且对于它们中的大多数来说,它们所指的查询语法的哪一部分是显而易见的,例如 CARAT => ^ 但有些并不那么明显:
<BAREOPER>, <PREFIXTERM>, <REGEXPTERM>, <RANGE_GOOP>
在 QueryParserConstants 中,这些名称被映射到对正则表达式项的整数引用,但是,尽管检查了 Lucene 源代码,我仍然无法弄清楚这些名称的含义。
有谁知道这些指的是什么,或者知道我可以在代码中的哪里找到相关的正则表达式术语,所以我可以从中找出答案?
解决方案
推荐阅读
- hibernate - 如何使用 Hibernate 解决错误“失败,因为启用了'在集合提取上的分页失败'”?
- python - Python中的幸运数字
- r - 如何通过比较随机数和包含R中概率的向量来创建计数器?
- python - 如何修复“chromedriver.exe”可执行文件需要在 Github Actions 的 PATH 中?
- node.js - 无法执行 Sudo npm run dev
- c++ - RegCreateKeyEx 成功,但未添加密钥
- vue.js - 将组件动态添加到 Vue 应用程序的最佳方式
- python - 由于 polyfit 错误,macOS Big Sur python3 无法导入 numpy
- angular - Angular - 带有loadChildren的组件的多条路线?
- console - 在 spyder 中查看返回值