Я смущен. Я следующий документ индексируется:Многополюсный анализатор не работает должным образом
POST test/topic
{
"title": "antiemetics"
}
С помощью следующего запроса:
{
"query": {
"query_string" : {
"fields" : ["title*"],
"default_operator": "AND",
"query" :"anti emetics",
"use_dis_max" : true
}
},
"highlight" : {
"fields" : {
"*" : {
"fragment_size" : 200,
"pre_tags" : ["<mark>"],
"post_tags" : ["</mark>"]
}
}
}
}
и следующие настройки и отображения:
POST test{
"settings":{
"index":{
"number_of_shards":1,
"analysis":{
"analyzer":{
"merge":{
"type":"custom",
"tokenizer":"keyword",
"filter":[
"lowercase"
],
"char_filter":[
"hyphen",
"space",
"html_strip"
]
}
},
"char_filter":{
"hyphen":{
"type":"pattern_replace",
"pattern":"[-]",
"replacement":""
},
"space":{
"type":"pattern_replace",
"pattern":" ",
"replacement":""
}
}
}
}
},
"mappings":{
"topic":{
"properties":{
"title":{
"analyzer":"standard",
"search_analyzer":"standard",
"type":"string",
"fields":{
"specialised":{
"type":"string",
"index":"analyzed",
"analyzer":"standard",
"search_analyzer":"merge"
}
}
}
}
}
}
}
Я знаю, что мое использование многопрофильных Безразлично через «Имею смысл, поскольку я использую тот же анализатор индекса, что и название, поэтому, пожалуйста, просто игнорируйте это, но меня больше интересует мое понимание в отношении анализаторов. Я ожидал, что анализатор слияния изменит следующий запрос «anti emetics» на «antiemetics», и я надеялся, что параметр multifield, который применяет анализатор, будет соответствовать маркерной «противорвотной», но я не получаю никаких результатов, даже если Я проверил, что анализатор удаляет пробелы из запроса, запустив API анализа. Любая идея почему?
Какую версию ES вы используете? – ChintanShah25