使用RavenDB对Lucene索引进行查询。
此查询解析好了: X:[[a]]和Y:[[b]]和Z:[[c]]
但是这个查询给了我一个解析异常: X:[[a]]和Y:[[b]]和Z:[[c]]和P:[[d]]
“Lucene.Net.QueryParsers.ParseException:无法解析'(AND)':遇到\”\“和”
我在复杂的索引和简单的重现案例上尝试了这个,结果看起来一旦你超过三个并且它就会爆炸。我使用[[]]而不进行分析,因为我想要完全匹配(有时值也包含空格等等),而且从RavenDB我对索引的控制很少。
我想知道如何重写查询以避免解析异常?
答案 0 :(得分:2)
现在已在最新的RavenDB版本中修复此问题。有关详细信息,请参阅this thread。
答案 1 :(得分:0)
这看起来很像Lucene的QueryParser中的一个错误,也许可以尝试在用户邮件列表中报告这个错误。
作为旁路,您可以手动创建一个BooleanQuery并添加自己想要的术语。由于它们没有被分析,并且查询看起来不太复杂,所以没有查询解析器可能会更好。