概要
あいまい検索は、ユーザーの検索意図が不明確な場合に、検索クエリと検索対象のコンテンツ (ドキュメント) をあいまいマッチングさせ、関係ドキュメントを取得するものです。検索クエリが取得したドキュメント内のある漢字のフルピンインまたはピンインの頭文字である場合、または検索クエリが取得したドキュメントに含まれている場合、取得したドキュメントは検索クエリと関係あると判断します。あいまい検索は、ユーザーの検索意図を的確に識別できないため、ユーザーが求めていない情報を多数取得する可能性があります。そのため、あいまい検索は、実際の状況に合わせて使用することをお勧めします。
注意事項
あいまい検索のアナライザーは、SHORT_TEXT 型のフィールドのみをサポートします。
一般的に、あいまい検索は一重引用符 (' ') を使用して行います。下記で説明するシナリオに限り、二重引用符 (" ") が使用されます。
シナリオ
あいまい検索は、検索意図が不明確な場合や、少ない情報でより多くのドキュメントを取得したい場合に適しています。適用シナリオは以下通りです。
ピンイン検索
説明:検索クエリがフルピンインまたはピンインの頭文字の形式であり、中国語のドキュメントが取得されます。
例:
# サンプルドキュメント:開放検索
// サンプル検索クエリ:"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"を含むドキュメントを取得するには、一重引用符 (' ')で検索してください。
留意点:
検索クエリを二重引用符 (" ") で囲む必要があります。
検索結果の精度が高く、それによって取得するドキュメントの量を抑えることができます。その代わりに、パフォーマンスの消費は大きくなります。このパフォーマンス消費を抑えるためには、検索においては分かち書き機能の利用を推奨します。
制限事項
アプリケーションを作成するときに、あいまい検索に使用するフィールドを SHORT_TEXT 型に設定し、あいまい検索のアナライザーを指定する必要があります。デフォルトでは、あいまい検索によって返されるドキュメントは、ヒットした文字がフィールドに存在する位置に基づいて並べ替えられます。たとえば、あるアプリケーションのタイトルフィールドであいまい検索を行うケースを考えます。doc1 ドキュメントには "开放搜索" が含まれ、doc2 ドキュメントには "喜欢使用开放搜索" が含まれています。検索クエリを "kfss" として指定すると、デフォルトでは doc1 ドキュメントは doc2 ドキュメントの前に並べられます。あいまい検索を利用する際は、下記の内容にご留意ください。
サフィックス検索またはプレフィックス検索は、漢字を含む検索クエリでは機能しません。対応しているのは、英字や、数字、ピンインで構成された検索クエリに限られます。
SHORT_TEXT 型のフィールド内の句読点は取り除かれます。
SHORT_TEXT 型のフィールド内の句読点が取り除かれた後、フィールド値が最大 100 バイトまで保持できます。超過部分は破棄されます。
SHORT_TEXT 型のフィールドに基づいてドロップダウン候補モデルを作成できます。
SHORT_TEXT 型のフィールドに基づいて作成されたインデックスに対しては、クエリ分析機能が利用できません。
SHORT_TEXT 型のフィールドに対して、あいまい検索アナライザーのみを使用してインデックスを作成した場合、検索結果の概要に含まれる全角文字は半角文字に変換されてしまいます。この問題は、中国語アナライザーでインデックスを作成することで回避できます。
検索結果の概要では、文字、数字、およびピンインをハイライトで強調表示できません。