ユーザークエリにストップワードのみが含まれている場合、Solr がすべての結果を返すようにしたいと考えています。オンにできるSolr構成のフラグ、またはこれを実現するために使用できるSolrクエリ構文構造はありますか?
クライアント側でストップワード ロジックを複製し、q=*:*
すべての用語がストップワードである場合に起動するという考えは本当に好きではありません。
ユーザークエリにストップワードのみが含まれている場合、Solr がすべての結果を返すようにしたいと考えています。オンにできるSolr構成のフラグ、またはこれを実現するために使用できるSolrクエリ構文構造はありますか?
クライアント側でストップワード ロジックを複製し、q=*:*
すべての用語がストップワードである場合に起動するという考えは本当に好きではありません。
クエリがすべてのストップワードである場合に異なるクエリを処理する Edismaxクエリパーサーを確認してください。
高度なストップワード処理が含まれています。ストップワードはクエリの必須部分では必要ありませんが、近接ブースト部分では引き続き使用されます。クエリが「生きるべきか、死ぬべきか」などのすべてのストップワードで構成されている場合は、すべての単語が必要です。
all()結果クエリとしては機能しませんが*:*
、ほとんどの結果と確実に一致します。
この問題のハッキーな解決策は、を設定q=*:* AND _query_:"{! var=$userq}"
し、ユーザークエリをのuserq
代わりにURLパラメータに送信することですq
。
これにより、結果がすべてのドキュメントとユーザークエリの共通部分になるように明示的に設定されます(_query_:"{!...}"
構文に慣れていない場合は、http://wiki.apache.org/solr/LocalParamsを参照してください)。
これにより、ユーザークエリのみと比較して、異なるスコアが返されますが、順序は同じであることに注意してください。