0

Elastic インデックスのデータに問題があり、特定の文字列フィールドに同じであるべき異なる値が含まれています。たとえば、X-Box、X Box、XBox などです。

マッピングにいくつかの変換を追加できることはわかっていますが、多くのソースからデータが入ってきて、値を受け取るまで値が不明であるため、実際には適切ではありません。

変換のようなものを検索で定義することは可能ですか? たとえば、ユーザーは「XBox」を検索しますが、それを定義したため (差異を発見した後)、Elastic は「X-Box および XBox」のドキュメントも返すことを知っていますか?

それが理にかなっていることを願っていますか?前もって感謝します。

4

1 に答える 1

1

同義語フィルターは、探しているものです。バリアントを共通名にマップできます。アナライザーの作成については、このブログを参照できます。以下に示すようにフォーマットを使用してください -

{
    "filter" : {
        "synonym" : {
            "type" : "synonym",
            "synonyms" : [
                "X-box, x box => xbox",
                "universe, cosmos"
            ]
        }
    }
}
于 2015-08-14T11:33:53.327 に答える