ファジークエリと一致クエリの違いは何ですか?

Fajikuerito Yi Zhikuerino Weiiha Hedesuka



Elasticsearch は、さまざまなタイプのデータを管理するために利用される、よく知られた無料のオープンソースの分析的分散型検索エンジンおよびデータベースです。これは純粋に NoSQL データベースであり、一般的な SQL データベースやリレーショナル データベースとは動作が異なります。 Elasticsearch は、クエリ DSL ((ドメイン固有言語) および REST API を使用してデータを管理および分析します。Elasticsearch には、ファジー クエリ、一致クエリ、ワイルド カード クエリ、プレフィックス クエリなど、さまざまなタイプのクエリが存在します。これらのクエリの動作は異なります。互いに。

この投稿では以下について説明します。

「ファジー」クエリとは何ですか?

ファジー ” クエリは、” に基づいて文字の変更、文字の挿入、文字の削除などの他の検索操作を実行するクエリ DSL です。 レーベンシュタイン編集距離 ' 距離。通常、用語間の差異を検出し、検索された用語に近い、またはほぼ類似した文書内の結果を返します。







「一致」クエリとは何ですか?

マッチ 」クエリは、文字列、数値、テキストなどの指定されたデータの照合または検索に使用される別のタイプのクエリ DSL です。それは ' 全文 」ベースのクエリを実行して全文検索を実行し、検索された用語に完全に一致する結果を返します。用語が検索用語と一致しない場合は、null 文字列または false が返されます。



「あいまい」クエリと「一致」クエリの違い

両方 ' ファジー ' そして ' マッチ 」クエリは検索目的で使用されます。これら 2 つのクエリの主な違いは、「ファジー」クエリはファジー検索を実行し、検索された用語に類似または近い結果を返すことです。対照的に、「一致」クエリは、検索された用語に完全に一致する結果を返します。



理解を深めるために、以下の例に従ってください。





例 1: 「ファジー」クエリを使用したファジー検索

ユーザーが「」を含むドキュメントを見つけたいとします。 指定 ” の値を” 著者 ”。より近い一致を見つける検索を行ってみましょう。そのためには、「 ファジー ” を持つドキュメントを検索するクエリ 指定 「」と等しいか、「」に近い値 著者 ”:

Linuxhintを取得する / _検索

{

「クエリ」 : {

'ファジー' : {

'指定' : '著者'

}

}

}

以下の出力は、ID が「」であるドキュメントを示しています。 1 ' があります ' 指定 ” に近い値 著者 ” 検索ワード:



しかし、上記の例を「 マッチ ” クエリを実行すると、” が送信されます。 ヌル文字列 」と完全に一致する用語が返されるためです。

例 2: 「一致」クエリを使用したあいまい検索

同じ例を取り上げて「」を適用してみましょう。 マッチ ” クエリを使用して、” を持つドキュメントを検索します。 指定 ” の値を” 著者 ”:

Linuxhintを取得する / _検索

{

「クエリ」 : {

'マッチ' : {

'指定' : '著者'

}

}

}

以下の出力は、「 マッチ ” クエリはより近い結果を見つけられず、” を返します。 ヌル ' 弦:

「」から検索した値を変更してみましょう 著者 ' に ' 著者 ”を実行し、” マッチ 」クエリは次のようになります。

Linuxhintを取得する / _検索

{

「クエリ」 : {

'マッチ' : {

'指定' : '著者'

}

}

}

ここでは、「 マッチ 「クエリは ID を持つドキュメントを返します」 1 ”。ドキュメント 1 は検索された用語と完全に一致するため、次のようになります。

「」との違いは以上です。 ファジー ” クエリと” マッチ 」というクエリ。

結論

ファジー 」クエリは、あい​​まい検索を行うために使用され、検索された用語によく一致する結果を返します。しかし ' マッチ 」クエリはあいまい検索をサポートしておらず、検索された用語に完全に一致する結果を返します。このブログでは、あいまいクエリと一致クエリの違いについて説明しました。