1

辞書を作成していて、elasticsearch を検索エンジンとして使用したいと考えています。複数の言語をサポートする必要があるため、私のデータベースは次のようになります。

| left_lang | right_lang | left_word | right_word |
| de        | en         | Schuh     | shoe       |
| da        | de         | sko       | Schuh      |

さまざまなアナライザー設定 (ステマーなど) を定義できるのはどのレベルですか? ドキュメントのフィールドごとに異なる設定を行うことはできますか? たとえば、最初のドキュメントでは left_words にドイツ語の設定を使用し、right_words に英語を使用し、2 番目のドキュメントでは left_words にデンマーク語を使用し、right_words にドイツ語を使用しますか? または、型またはインデックス レベルでこれらを定義することはできますか?

4

1 に答える 1

2

はい、フィールドごとにこれらの設定を定義できます。「マルチフィールド」マッピングを使用して、複数の言語設定で分析されるフィールドを定義することもできます。

{
  "settings":{
     "index":{
        "analysis":{
           "analyzer":{
              "analyzer_english":{
                 "tokenizer":[...],
                 "filter":[...]
              },
              "analyzer_german":{
                 "tokenizer":[...],
                 "filter":[...]
              }
           }
        }
     }
  },
  "mappings":{
     "test":{
        "properties":{
           "left_word":{
              "analyzer":"analyzer_german",
              "type":"string"
           },
           "right_word":{
              "analyzer":"analyzer_english",
              "type":"string"
           },
           "combo_word":{
              "type":"multi_field",
              "fields":{
                 "combo_word":{
                    "analyzer":"analyzer_german",
                    "type":"string"
                 },
                 "combo_english":{
                    "analyzer":"analyzer_english",
                    "type":"string"
                 }
              }
           }
        }
     }
  }
}
于 2013-02-11T01:58:26.037 に答える