すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:ファジーアナライザー

最終更新日:Dec 28, 2024

概要

ファジーアナライザー (fuzzy) は、検索意図が不明確なあいまい検索に適しています。あいまい検索では、OpenSearch Retrieval Engine Edition は、あいまい一致モードで検索クエリに関連するドキュメントを取得します。検索クエリがドキュメント内の特定の漢字の完全なピンインスペルまたはピンインの頭字語である場合、または検索クエリがドキュメントに含まれている場合、ドキュメントは検索クエリに関連すると判断されます。あいまい検索では、OpenSearch Retrieval Engine Edition は検索意図を識別できず、予期しないドキュメントを多数取得する可能性があります。実際のビジネスシナリオに基づいてあいまい検索を使用することをお勧めします。

ファジーアナライザーを使用するには、スキーマを構成するときにアナライザーを fuzzy に設定します。クエリを実行するときは、対応するインデックスのアナライザーを analyzer 句で fuzzy_search_analyzer に設定します。

例:
スキーマを構成します。
{
    "fields":[
        {
            "field_type":"INT64",
            "field_name":"id"
        },
        {
            "field_type":"TEXT",
            "field_name":"title",
            "analyzer":"fuzzy"
        }
    ],
    "summarys":{
        "compress":false,
        "summary_fields":[
            "id",
            "title"
        ]
    },
    "indexs":[
        {
            "has_primary_key_attribute":true,
            "index_fields":"id",
            "is_primary_key_sorted":true,
            "index_name":"id",
            "index_type":"PRIMARYKEY64"
        },
        {
            "doc_payload_flag":1,
            "index_fields":"title",
            "index_name":"title_index",
            "index_type":"TEXT"
        }
    ],
    "attributes":[
        "id"
    ],
    "table_name":"test_table"
}

クエリ: config=start:0,hit:10,format:json&&query=title_index:'abc'&&analyzer=specific_index_analyzer:title_index#fuzzy_search_analyzer

注:
* スキーマの title フィールドにファジーアナライザーが指定され、title_index が作成されます。
* クエリでは、analyzer 句の title_index に fuzzy_search_analyzer が指定されています。

シナリオ

あいまい検索は、検索意図が不明確な場合、または検索結果で取得されるドキュメントの数を増やしたい場合に適しています。あいまい検索は、次のシナリオに適用されます。

ピンイン検索

説明: このシナリオでは、完全なピンインスペルまたはピンインの略語の形式の検索クエリを使用して、中国語のドキュメントを取得できます。

:

ドキュメント: 开放搜索
検索クエリ: "kai"、"kaifang"、"sousuo"、"kaifangsousuo"、"k"、"kf"、"ss"、および "kfss"
これらの検索クエリはすべて、ドキュメントの取得に使用できます。

使用上の注意:

  • ピンイン検索では二重引用符 (") が使用されます。

  • 検索クエリで指定された漢字が取得されたドキュメントで連続しているようにするには、検索クエリを二重引用符 (") で囲みます。ほとんどの場合、検索クエリで完全なピンインスペルまたはピンインの略語の形式で指定された漢字は、取得されたドキュメントで連続していることが想定されます。たとえば、検索クエリが "kfss" の場合、取得されたドキュメントには "开放搜索" が含まれている必要があります。したがって、ピンイン検索では検索クエリを二重引用符 (") で囲むことをお勧めします。

プレフィックス検索

説明: このシナリオでは、指定された検索クエリで始まるコンテンツを検索できます。

:

# プレフィックス検索では、キャレット (^) がプレフィックス識別子として使用されます。"138" で始まる携帯電話番号が返されるようにするには、
検索クエリは "^138" の形式にすることができます。二重引用符 (") が必要であることに注意してください。

使用上の注意:

  • プレフィックス検索は漢字をサポートしていません。

  • プレフィックス検索では、検索クエリを二重引用符 (") で囲む必要があります。

サフィックス検索

説明: このシナリオでは、指定された検索クエリで終わるコンテンツを検索できます。

:

# サフィックス検索では、ドル記号 ($) がサフィックス識別子として使用されます。"9527" で終わる携帯電話番号が返されるようにするには、
検索クエリは "9527$" の形式にすることができます。二重引用符 (") が必要であることに注意してください。

使用上の注意:

  • サフィックス検索は漢字をサポートしていません。

  • サフィックス検索では、検索クエリを二重引用符 (") で囲む必要があります。

単一文字または単語の検索

説明: このシナリオでは、単一文字または単語の形式で検索クエリを指定することにより、特定のコンテンツを検索できます。このタイプの検索は、検索結果でより多くのドキュメントを取得したい場合に適用できます。ただし、検索結果は正確でない場合があります。

:

# ドキュメント: '開放搜索 open search'
クエリ句: query=default:'放' または query=default:'o'。どちらのクエリ句もドキュメントの取得に使用できます。

フレーズ検索

説明: このシナリオでは、検索クエリを二重引用符 (") で囲む必要があります。フレーズ検索では、検索クエリ内の連続した文字と数字の文字列を含むドキュメントのみが取得されます。

:

# クエリ句 1: query=default:"开放搜索"
この場合、"xxx开放搜索xxx" を含むドキュメントのみを取得できます。"xxx搜索开放xxx" を含むドキュメントは取得できません。

# サンプルクエリ句 2: query=default:"华为P"
この場合、"华为P20" を含むドキュメントは取得できません。これは、"华为P20" がクエリ句に連続した文字と数字の文字列として含まれていないためです。このクエリ句を使用して "华为P20" を含むドキュメントを取得するには、検索クエリを一重引用符 (') で囲みます。

使用上の注意:

  • フレーズ検索を実装するには、検索クエリを二重引用符 (") で囲む必要があります。

  • フレーズ検索では、検索結果は高精度であり、システムは少数のドキュメントを取得します。このタイプの検索はより多くのリソースを消費します。フレーズ検索では、中国語の汎用アナライザーを使用することをお勧めします。

  • あいまい検索は、検索意図が不明確な場合、または検索結果でより多くのドキュメントが返されるようにしたい場合に適しています。ピンイン検索、プレフィックス検索、サフィックス検索、およびフレーズ検索を除き、検索クエリを一重引用符 (') で囲む必要があります。

使用上の注意

  • デフォルトでは、あいまい検索で返されるドキュメントは、フィールド値内の一致する用語の順序に基づいてソートされます。たとえば、アプリケーションで title フィールドをあいまい検索に使用するとします。doc1 ドキュメントには "开放搜索" が含まれ、doc2 ドキュメントには "喜欢使用开放搜索" が含まれています。検索クエリを "kfss" に設定すると、デフォルトでは doc1 ドキュメントが doc2 ドキュメントの前にソートされます。

  • 漢字を含む検索クエリを使用して、サフィックス検索またはプレフィックス検索を実行することはできません。サフィックス検索またはプレフィックス検索を実行する場合、検索クエリには文字、数字、およびピンインスペルのみを含めることができます。

  • ファジーアナライザーを使用するフィールドの値にある句読点は除外されます。

  • ファジーアナライザーを使用するフィールドの値にある全角文字は半角文字に変換されます。

  • ファジーアナライザーを使用するフィールドの値にある文字、数字、およびピンインスペルは赤で強調表示できません。