当我传递查询“state:OR”时,lucene给出了一个错误,因为它认为“OR”是布尔子句的关键字,但在这里我实际上使用了俄勒冈州的缩写。我已经看到引用OR使查询变成'state:“OR”'使它工作。但这听起来并不是一个很好的方法,因为我必须对Lucene使用的每个关键字进行字符串替换:和或不和其他人??我不知道有多少我尝试直接构造查询,而不是执行queryParser.parse(),但这似乎没有通过分析器,这是一个大问题。
liwlm1x91#
在Lucene query syntax中只有3个独立的关键字-- AND、OR和NOT。(也使用了“TO”,但它只在范围查询中被识别。)引用代码只需要识别在应用程序中实际用作术语的Lucene关键字(如上面示例中的“OR”),这可能会有所帮助。
3条答案
按热度按时间liwlm1x91#
在Lucene query syntax中只有3个独立的关键字-- AND、OR和NOT。(也使用了“TO”,但它只在范围查询中被识别。)
引用代码只需要识别在应用程序中实际用作术语的Lucene关键字(如上面示例中的“OR”),这可能会有所帮助。