1

RavenDBを使用してLuceneIndexでクエリを実行します。

このクエリは正常に解析されます:X:[[a]] AND Y:[[b]] AND Z:[[c]]

ただし、このクエリでは解析例外が発生します:X:[[a]] AND Y:[[b]] AND Z:[[c]] AND P:[[d]]

"Lucene.Net.QueryParsers.ParseException:'(AND)'を解析できません:\" \"AND"が発生しました

複雑なインデックスと単純な再現ケースでこれを試しましたが、3つを超えると爆発するように見えます。[[]]を使用していますが、完全に一致する必要があるため(値に空白などが含まれる場合もあります)、分析されません。RavenDBからは、インデックス作成をほとんど制御できません。

解析例外を回避するためにクエリを書き直す方法を知りたいですか?

4

2 に答える 2

2

これは、最新の RavenDB ビルドで修正されました。詳細については、このスレッドを参照してください。

于 2010-07-07T21:39:31.707 に答える
0

これは、Lucene の QueryParser のバグのように見えます。ユーザーのメーリング リストで報告してみてください。

バイパスとして、手動で BooleanQuery を作成し、必要な用語を自分で追加することができます。それらは分析されておらず、クエリはそれほど複雑に見えないため、クエリパーサーを使用しない方がよい場合があります。

于 2010-07-02T00:27:28.887 に答える