0

エラスティック バージョン 1.6 の実行

Elasticsearch のインデックスにカスタム アナライザーを設定しようとしています。私のインデックス / には、いくつかのアクセントと特殊文字を含むいくつかのプロパティがあります。

私のプロパティ名の1つのように、"name" => "Está loca"のような値があります。だから私が達成したいのは、この方法で検索しようとするときはいつでも、 http://localhost:9200/tutorial/helloworld/_search?q=esta です

"Está loca"の結果が得られるはずです。私は次のリンクを通過し、リンクで説明されている必要なアナライザーを構成しました。 https://www.elastic.co/guide/en/elasticsearch/guide/current/asciifolding-token-filter.html

curl -XPUT 'localhost:9200/tutorial?pretty' -H 'Content-Type: application/json' -d'
{
"mappings":{
  "helloworld":{
  "properties": {
    "name": { 
      "type":           "string",
      "analyzer":       "standard",
      "fields": {
        "folded": { 
          "type":       "string",
          "analyzer":   "folding"
        }
      }
    }
  }
}
},
"settings": {
    "analysis": {
      "analyzer": {
        "folding": {
          "tokenizer": "standard",
          "filter":  [ "lowercase", "asciifolding" ]
        }
      }
    }
  }
}'

インデックスの作成中にこれを構成し、テスト用にこのようなエントリをいくつか作成しました。

curl -X POST 'http://localhost:9200/tutorial/helloworld/1' -d '{ "name": "Está loca!" }'
curl -X POST 'http://localhost:9200/tutorial/helloworld/2' -d '{ "name": "Está locá!" }'

しかし、このように検索している間、 http://localhost:9200/tutorial/helloworld/_search?q=esta 何も起こっていません。ユーザーが英語などの言語で検索するたびに、同じ結果が得られるようにしたいだけです。誰か助けてください、どうすればこの1週間苦労して達成できますか。

4

2 に答える 2