对未分析字段的Lucene布尔查询

时间:2010-06-25 04:33:59

标签: lucene lucene.net ravendb

使用RavenDB对Lucene索引进行查询。

此查询解析好了: X:[[a]]和Y:[[b]]和Z:[[c]]

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

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

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

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

2 个答案:

答案 0 :(得分:2)

现在已在最新的RavenDB版本中修复此问题。有关详细信息,请参阅this thread

答案 1 :(得分:0)

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

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