如何在lucene查询中正确转义OR和AND?

vh0rcniy  于 2022-11-07  发布在  Lucene
关注(0)|答案(3)|浏览(145)

当我传递查询“state:OR”时,lucene给出了一个错误,因为它认为“OR”是布尔子句的关键字,但在这里我实际上使用了俄勒冈州的缩写。
我已经看到引用OR使查询变成'state:“OR”'使它工作。
但这听起来并不是一个很好的方法,因为我必须对Lucene使用的每个关键字进行字符串替换:和或不和其他人??我不知道有多少
我尝试直接构造查询,而不是执行queryParser.parse(),但这似乎没有通过分析器,这是一个大问题。

liwlm1x9

liwlm1x91#

Lucene query syntax中只有3个独立的关键字-- AND、OR和NOT。(也使用了“TO”,但它只在范围查询中被识别。)
引用代码只需要识别在应用程序中实际用作术语的Lucene关键字(如上面示例中的“OR”),这可能会有所帮助。

相关问题