2

ユーザークエリにストップワードのみが含まれている場合、Solr がすべての結果を返すようにしたいと考えています。オンにできるSolr構成のフラグ、またはこれを実現するために使用できるSolrクエリ構文構造はありますか?

クライアント側でストップワード ロジックを複製し、q=*:*すべての用語がストップワードである場合に起動するという考えは本当に好きではありません。

4

2 に答える 2

1

クエリがすべてのストップワードである場合に異なるクエリを処理する Edismaxクエリパーサーを確認してください。

高度なストップワード処理が含まれています。ストップワードはクエリの必須部分では必要ありませんが、近接ブースト部分では引き続き使用されます。クエリが「生きるべきか、死ぬべきか」などのすべてのストップワードで構成されている場合は、すべての単語が必要です。

all()結果クエリとしては機能しませんが*:*、ほとんどの結果と確実に一致します。

于 2012-11-14T04:39:32.243 に答える
0

この問題のハッキーな解決策は、を設定q=*:* AND _query_:"{! var=$userq}"し、ユーザークエリをのuserq代わりにURLパラメータに送信することですq

これにより、結果がすべてのドキュメントとユーザークエリの共通部分になるように明示的に設定されます(_query_:"{!...}"構文に慣れていない場合は、http://wiki.apache.org/solr/LocalParamsを参照してください)。

これにより、ユーザークエリのみと比較して、異なるスコアが返されますが、順序は同じであることに注意してください。

于 2012-11-14T04:37:30.780 に答える