現在、HOUSTON BOSTON ATLANTA GOOBERの107のインデックス付きMLBスケジュールを検索し、GOOBERを含むドキュメントがない場合、結果は0です。結果を確実に返して返します
用語の1つが見つからない場合、検索がHOUSTON BOSTON ATLANTA(効果的にGOOBERを無視する)のように結果を返します。
私はこれをSolr Web UIからやっています。何もない。
フォローアップ:これができない場合は、どこでその機能を自分で実装し始めますか?
現在、HOUSTON BOSTON ATLANTA GOOBERの107のインデックス付きMLBスケジュールを検索し、GOOBERを含むドキュメントがない場合、結果は0です。結果を確実に返して返します
用語の1つが見つからない場合、検索がHOUSTON BOSTON ATLANTA(効果的にGOOBERを無視する)のように結果を返します。
私はこれをSolr Web UIからやっています。何もない。
フォローアップ:これができない場合は、どこでその機能を自分で実装し始めますか?
すべての条件が真であれば、ANDは常に真を返すことになります。ブール論理の長年にわたる規則に違反しないようにしたいのではなく、ANDクエリが結果を返さないかどうかを検出するアプリケーションロジックが必要です。その場合は、代替クエリを実行してください。あるいは、あなたのブールフレーズを書いて、1つのクエリでそれを行うことができます。 (必ずしも可能ではありませんが、非常に頻繁にそうです)
ORを使用する必要があります。例:HOUSTON OR BOSTON OR ATLANTA OR GOOBER
。グーバーが存在しなければ、ヒューストン、ボストン、アトランタのものはまだ見つかるでしょう。上の方で、グーーーーーと一緒に何かが存在すれば、グーバーンも見つかるでしょう。
クエリのユースケースについて詳しくは、必要に応じてさらにお手伝いできる場合があります。
ありがとうございました!私は5年前にPHPとPostgreSQLの経験がありましたが、私はSolrとJavaの新機能です。 ORを使用すると結果が保証され、必要以上に多くの結果が得られることに同意しますが、最初に一致数が最も高い順にランク付けされますか? ヒューストンを探してボストンなどを検索する必要があるかどうか、私は思っています。 サブセットの検索結果が返されない場合(Goober)、前のセットで検索を続けます。 これは非常に時間がかかる可能性があります。 –
検索用語への参照が多い文書は、一番上に浮かべてください。あなたは何をしようとしていますか?各クエリから小さな(25未満の)レコードが来ると予想される場合は、いくつかの小さなクエリが順番に並んでいます。もちろん、テストを大量にロードする必要があります。 – TMBT
私は、決して失敗しないAND検索を実装したいクライアントを持っています。たとえば、見つからない単語(GOOBER)にヒットした場合、検索は失敗しません。単にその単語を無視します。 私の混乱は、これがアプリケーションに依存するのか、開発者が利用できる新しいSolr検索機能であるのかということです。 –