この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 20947|答える: 1

ElasticSearchの複合クエリは、must_not使うべきです

[リンクをコピー]
掲載地 2018/12/28 12:01:09 | | |
ブールジョイントクエリ:必須、すべき、must_not

「BMWのコンテンツはあるがタグにはない」のようなものをリクエストしたいなら、boolフェデレーテッドクエリを使う必要があります。

共同クエリでは、must、should、s、must_notの3つのキーワードを使用します。

これら三つはこのように理解できます

must: 文書は条件に正確に一致しなければなりません
should: 複数の条件が満たされるべきであり、少なくとも一つの条件が満たされれば、この文書は
must_not:文書は基準に合致していなければなりません

公式ウェブサイトの紹介:https://www.elastic.co/guide/cn/ ... bining-filters.html

クエリDSL

match_all クエリ

すべての文書はクエリ可能であり、クエリ条件なしのデフォルト文となっています。


このクエリはしばしばフィルターのマージに使用されます。 例えば、すべてのメールボックスを取得する必要があり、すべての文書関連性が同じなので、得られる_scoreは1です。

マッチクエリ

マッチクエリは、全文クエリが必要な場合でも、正確に使われる標準的なクエリです。

matchを使って全文フィールドを照会すると、実際のクエリの前に解析文字を解析します:



マッチで正確な値を指定すると、数値、日付、ブール数、またはnot_analyzed文字列に出会ったときにその値を検索します。


ヒント:完全一致検索を行う際は、フィルター文を使うのが最適です。なぜならフィルター文はデータをキャッシュするからです。

マッチクエリは、正確なフィールドを指定する正確な値だけを検索でき、構文エラーを避けるために正しいフィールド名を指定するだけで済みます。

multi_match クエリ

multi_matchクエリは、マッチクエリに基づいて複数のフィールドを同時に検索し、複数のフィールドで同時に検索することができます:


ブールクエリ

ブールクエリはブールフィルタリングに似ており、複数のクエリ節をマージするために使われます。 違いは、ブールフィルターはマッチングの成功を直接示せるのに対し、ブールクエリは各クエリ節の_score(相関スコア)を計算する点です。

must:: 查询指定文档一定要被包含。
must_not:: 指定されたクエリ文書は含めてはなりません。
should:: 查询指定文档,有则可以为文档相关性加分。

次のクエリでは、タイトル欄に「How to make millions」が含まれ、「tag」欄がスパムとしてマークされていないことがわかります。 もし「星付き」とラベル付けされているか、2014年より前の公開日であれば、これらのマッチングドキュメントは類似サイトよりも高いレベルに位置します。


ヒント:boolクエリに必須条項がなければ、少なくとも一つはすべき条項があるはずです。 しかし、必須節が存在する場合、そのクエリは必要節なしでも行うことができます。

ワイルドカードクエリ

標準的なシェルワイルドカードクエリを使いましょう

以下のクエリはW1F 7HWおよびW2F 8HWを含む文書と一致します。


例えば、次のホスト名のクエリは以下のシェルワイルドカードと一致します:


regEXPクエリ

例えば、Wで始まる郵便番号の後に数字が続くものだけをマッチングしたいとしましょう。 正統表現クエリを使うことで、より複雑なパターンを書くことができます:



この正則表現は、エントリがWで始まり、0から9までの数字、さらに1つ以上の他の文字が続くことを指定します。

以下の例はすべて正則開始でwxopenです


プレフィックスクエリ

どの文字で始まるのか?以下の例のように、接頭辞をもっとシンプルに使うこともできます。


フレーズマッチング

近い単語を見つけたいときは、match_phraseクエリを使います。


マッチクエリと同様に、クエリmatch_phraseまずクエリ文字列を解析して用語のリストを作成します。 すべてのエントリーを検索します。
ただし、すべての検索語を含む文書のみが保存され、用語の位置は隣接しているべきです。 Quick Foxという言葉の検索は当てはまりません
私たちのドキュメントにはクイックエントリーとボックスエントリーが隣接しているものはありません。
クエリmatch_phraseまた、以下のタイプのフレーズのマッチクエリとしても書くことができます。







先の:12月18日に中国会計オンラインスクールが購入(会計実務レベル6通関訓練キャンプ)
次に:C# regexはHTMLのAタグhrefの値を取ります
掲載地 2022/11/22 14:25:30 |
学びました。大家さん、ありがとうございます
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com