我正在实现一个类似 SQL 的查询解析器,它输出 Solr 查询。我知道 Solr/Lucene 查询与布尔查询并不完全相同,就像必须/不得/应该一样。但是我必须自动解析类似 SQL 的布尔查询,因为我们客户的接口已经采用了类似 SQL 的接口。
像“A and B”->“A and B”这样的简单解析是可以的,但是像“NOT(A and (B or C)) AND D”这样的解析,当 SolrServer 返回一个我没有返回的值时,我不知所措不打算。
我阅读了以下内容
http://lucene.472066.n3.nabble.com/Unexpected-boolean-query-behavior-td487306.html
但它似乎是 Lucene 的,我无法弄清楚如何将 lucene BooleanQuery 连接到 Solr。有人有好主意吗?