У меня есть документы, индексированные в эластичном кластере с приведенным ниже отображением. в основном у меня есть поле с именем модели, которая хранит имена автомобилей модели, такие как «Silverado 2500HD», «Silverado 1500HD» «LX 350» и т.д. и т.п.Эластичный синоним поиска с числовыми символами
POST /location-test-no-boost {
"settings":{
"analysis":{
"analyzer":{
"mysynonym":{
"tokenizer":"standard",
"filter":[
"standard","lowercase","stop","mysynonym"
],
"ignore_case":true
}
},
"filter":{
"mysynonym":{
"type":"synonym",
"synonyms": [
"2500 HD=>2500HD",
"chevy silverado=>Silverado"
]
}
}
}
},
"mappings":{
"vehicles":{
"properties":{
"id":{
"type":"long",
"ignore_malformed":true
},
"model":{
"type":"String",
"index_analyzer": "standard",
"search_analyzer":"mysynonym"
}
}
}
}
}
Содержание образца документ
POST /location-test-no-boost/vehicles/10
{
"model" : "Silverado 2500HD"
}
Когда я попытался выполнить поиск с строкой Query «Chevy sivlerado», синоним отлично соответствует Silverado и возвращает результат, наоборот, когда я попытался выполнить поиск по строке запроса «2500 HD», он возвращает 0 результатов. Я пробовал различную комбинацию на синониме с номером и обнаружил, что эластичный синоним поиска не поддерживает номера, это правильно?
есть ли способ, что я могу сделать некоторое отображение, когда пользователь ищет «2500 HD», я могу отобразить запрос «2500HD»
Вы не сказали, что вы используете для запроса. Как вы выполняете свои запросы? Можете ли вы привести пример? –