0
ファジーで文字列に含まれるクエリを実行するにはどうすればよいですか? のは、私は次のドキュメントがあるとしましょう:ファジーにはelasticSearchによるクエリが含まれています
{ ... "name":"william shakespeare" ... }
私は次のクエリのための文書を受け取りたい:
- 「ウィリアム」(すべてのウィリアムズを返します)を
- 」ウィリアムシェイク "(ウィリアムシェイク"
- "を含むドキュメントのみを返します。Wiliam sa KE」(3と同じ)
- 『ウィリアム・シェイクスピア』/『ウィリアム・シェイクスピア』/『ウィリアムshakespeer』(唯一のウィリアム・シェイクスピア
ノー成功を収めてNGRAMアナライザとあいまいクエリを使用しようとしたに戻ります。
{
"settings": {
"analysis": {
"filter": {
"ngram_analyzer_filter": {
"type": "ngram",
"min_gram": 2,
"max_gram": 15
}
},
"analyzer": {
"ngram_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"ngram_analyzer_filter"
]
}
}
}
},
"mappings": {
"my_type": {
"properties": {
"name": {
"type": "string",
"analyzer": "ngram_analyzer",
"search_analyzer": "standard",
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}
}
私のクエリ:私は複数のフィールドを検索するため
{
"query": {
"multi_match": {
"query": "william shake",
"fields": [
"name.raw"
],
"fuzziness": 2,
"minimum_should_match":2
}
}
}
- それはmulti_match。
- 分析フィールドまたはnot_analyzedフィールドを使用しようとしました。
- "タイプ" を使用しようとしました: "というフレーズ"
- 弾性バージョン2.3.1