2

Tomcat 7.0.29 で実行されている Solr 4.4.0 を使用しています。solrconfig.xlm はそのままの状態で提供されます (もちろん、Solr ホーム ディレクトリは除きます)。次に示すように、schema.xml を渡すこともできますが、これがあまり役立つとは思えません。

テキストに "russia" を含むすべてのドキュメント (デフォルト フィールド) を選択すると、つまりクエリ "russia" を実行すると、正しいドキュメントが 1 つだけ見つかります。

テキストに「web」を含むすべてのドキュメント (「web」) を選択すると、結果は 29 で、これも正しいです。

「ロシア」を含まないすべての文書 (「NOT(ロシア)」) を検索しても、結果は正しい (202) です。

「ウェブ」を含み「ロシア」を含まないすべての文書 (「ウェブ AND NOT(ロシア)」) を検索すると、結果は再び正しい (28、「ロシア」を含む文書には「ロシア」も含まれるため)。ウェブ")。

しかし、「web」を含むか「ロシア」を含まないすべての文書 (「web OR NOT(russia)」) を検索すると、結果は 28 のままですが、203 の一致 (セット全体) が得られるはずです。

誰か説明を受けましたか??

参考までに、クエリのどこかで NOT を使用しない場合、AND と OR は正しく機能します。つまり、"web AND russia" --> OK "web OR russia" --> OK

4

1 に答える 1

0

Yonik Seeley から、NOT(ロシア) を (*:* -ロシア) に変換して、正の値 (つまり、すべてのドキュメント) を (-ロシア) から減算するために使用できる解決策を得ました。このソリューションは非常にうまく機能します。パーサーを変更して、「web OR NOT(russia)」というストレートフォワード リクエストが翻訳なしで機能するようにするのは良い考えだと今でも信じています。

于 2013-11-13T08:02:30.933 に答える