开发者

Lucene Boolean Query on Not ANalyzed Fields

Using RavenDB to do a query on Lucene Index.

This query parses okay: X:[[a]] AND Y:[[b]] AND Z:[[c]] 开发者_运维知识库

However this query gives me a parse exception: X:[[a]] AND Y:[[b]] AND Z:[[c]] AND P:[[d]]

"Lucene.Net.QueryParsers.ParseException: Cannot parse '( AND )': Encountered \" \"AND"

I tried this on complexed index and simple reproduce cases and same result it seems once you go past three ands it blows up. Im using [[]] and not analyzed because i want exact matches (also sometimes values contain whitespace etc..) and from RavenDB I have veyr little control over the indexing.

Im wondering how I can rewrite the query to avoid the parse exception?


This is now fixed in the latest RavenDB builds. See this thread for more info.


This looks rather like a bug in Lucene's QueryParser, perhaps try reporting this in the user mailing list.

As a bypass, you could create a BooleanQuery manually and add the terms you want yourself. Since they are not analyzed, and the query doesn't look too complicated, you may be better off without the query-parser.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜