1

使用 RavenDB 对 Lucene Index 进行查询。

此查询解析正常: X:[[a]] AND Y:[[b]] AND Z:[[c]]

但是这个查询给了我一个解析异常: X:[[a]] AND Y:[[b]] AND Z:[[c]] AND P:[[d]]

“Lucene.Net.QueryParsers.ParseException:无法解析'(AND)':遇到\”\“AND”

我在复杂的索引和简单的重现案例上尝试了这个,一旦你过了三个,它就会爆炸,结果似乎是一样的。我使用 [[]] 并且没有进行分析,因为我想要完全匹配(有时值也包含空格等),并且从 RavenDB 我对索引几乎没有控制权。

我想知道如何重写查询以避免解析异常?

4

2 回答 2

2

这现在在最新的 RavenDB 版本中得到修复。有关更多信息,请参阅此线程

于 2010-07-07T21:39:31.707 回答
0

这看起来很像 Lucene 的 QueryParser 中的一个错误,也许可以尝试在用户邮件列表中报告这个。

作为绕过,您可以手动创建一个 BooleanQuery 并添加您自己想要的术语。由于它们没有被分析,并且查询看起来不太复杂,因此没有查询解析器可能会更好。

于 2010-07-02T00:27:28.887 回答