2016-07-08 10 views
0

現在、HOUSTON BOSTON ATLANTA GOOBERの107のインデックス付きMLBスケジュールを検索し、GOOBERを含むドキュメントがない場合、結果は0です。結果を確実に返して返します

用語の1つが見つからない場合、検索がHOUSTON BOSTON ATLANTA(効果的にGOOBERを無視する)のように結果を返します。

私はこれをSolr Web UIからやっています。何もない。

フォローアップ:これができない場合は、どこでその機能を自分で実装し始めますか?

答えて

0

すべての条件が真であれば、ANDは常に真を返すことになります。ブール論理の長年にわたる規則に違反しないようにしたいのではなく、ANDクエリが結果を返さないかどうかを検出するアプリケーションロジックが必要です。その場合は、代替クエリを実行してください。あるいは、あなたのブールフレーズを書いて、1つのクエリでそれを行うことができます。 (必ずしも可能ではありませんが、非常に頻繁にそうです)

ORを使用する必要があります。例:HOUSTON OR BOSTON OR ATLANTA OR GOOBER。グーバーが存在しなければ、ヒューストン、ボストン、アトランタのものはまだ見つかるでしょう。上の方で、グーーーーーと一緒に何かが存在すれば、グーバーンも見つかるでしょう。

クエリのユースケースについて詳しくは、必要に応じてさらにお手伝いできる場合があります。

+0

ありがとうございました!私は5年前にPHPとPostgreSQLの経験がありましたが、私はSolrとJavaの新機能です。 ORを使用すると結果が保証され、必要以上に多くの結果が得られることに同意しますが、最初に一致数が最も高い順にランク付けされますか? ヒューストンを探してボストンなどを検索する必要があるかどうか、私は思っています。 サブセットの検索結果が返されない場合(Goober)、前のセットで検索を続けます。 これは非常に時間がかかる可能性があります。 –

+0

検索用語への参照が多い文書は、一番上に浮かべてください。あなたは何をしようとしていますか?各クエリから小さな(25未満の)レコードが来ると予想される場合は、いくつかの小さなクエリが順番に並んでいます。もちろん、テストを大量にロードする必要があります。 – TMBT

+0

私は、決して失敗しないAND検索を実装したいクライアントを持っています。たとえば、見つからない単語(GOOBER)にヒットした場合、検索は失敗しません。単にその単語を無視します。 私の混乱は、これがアプリケーションに依存するのか、開発者が利用できる新しいSolr検索機能であるのかということです。 –

関連する問題