Добрый день!
Есть простой индекс:
{
"settings" : {
"analysis" : {
"analyzer" : {
"str_search_analyzer" : {
"tokenizer" : "keyword",
"filter" : ["lowercase"]
},
"str_index_analyzer" : {
"tokenizer" : "keyword",
"filter" : ["lowercase", "substring"]
}
},
"filter" : {
"substring" : {
"type" : "nGram",
"min_gram" : 1,
"max_gram" : 15
}
}
}
},
"mappings" : {
"item" : {
"properties" : {
"name" : {
"type" : "string",
"search_analyzer" : "str_search_analyzer",
"index_analyzer" : "str_index_analyzer"
},
"code" : {
"type" : "string",
"search_analyzer" : "str_search_analyzer",
"index_analyzer" : "str_index_analyzer"
},
"description" : {
"type" : "string",
"search_analyzer" : "str_search_analyzer",
"index_analyzer" : "str_index_analyzer"
}
}
}
}
}
Есть item:
code: 13FT1
name: RECONSTRUCTION ITEM
description: test test test
Первоначально поиск осуществлял запросом
{"query" : {
"multi_match" : {
"query": "xxxx",
"fields": [ "name^3", "code", "description" ]
}
}}
Хотел делать запрос таким образом, чтобы результаты поиска включали близкие значения к запросу, когда запрос содержит опечатки.
т.е. чтобы запрос RECONSTRACTION все равно вернул item code: 13FT1.
Возможно ли такое?
Спасибо.