1

Solrクエリを出力するSQLのようなクエリパーサーを実装しています。私は Solr/Lucene クエリがブールクエリと完全に同じではないことを知っています.MUST/MUST NOT/SHOULD. しかし、私たちの顧客のインターフェースはすでに SQL のようなものを採用しているため、SQL のようなブールクエリを自動的に解析する必要があります。

「A and B」→「A and B」のような単純な構文解析でもOKですが、「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に接続する方法がわかりませんでした。誰もが良い考えを持っていますか?

4

1 に答える 1

0

Luceneクエリ構文のドキュメントを見ると、ブールクエリ構文がネイティブのLucene(およびSolr)クエリ構文にどのようにマッピングされているかを判断できるはずです。Luceneソースを確認することも有益です(Lucene.NETソースは、Luceneが解析ツリーを作成しないという私の作業からかなり読みやすいことを知っています)。

于 2013-01-15T21:35:34.563 に答える