我有Map
'properties' : {
'names' : {
'types' : 'text',
'fields' : {
'suggest' : {
'type' : 'search_as_you_type',
}
}
},
'aliases' : {
'type' => 'nested',
'properties' : {
'names' : {
'type' : 'text',
'fields' : {
'suggest' : {
'type' : 'search_as_you_type',
}
}
}
}
}
}
并希望自动完成“names”和“aliases.names”。使用下一个查询
GET people/_search
{
"query": {
"dis_max": {
"queries": [
{
"function_score": {
"query": {
"multi_match": {
"query": "nic",
"type": "bool_prefix",
"fields": [
"names.suggest",
"names.suggest._2gram",
"names.suggest._3gram"
]
}
},
"field_value_factor": {
"field": "rating"
},
"boost_mode": "replace"
}
},
{
"function_score": {
"query": {
"nested": {
"path": "aliases",
"inner_hits": {},
"query": {
"multi_match": {
"query": "nic",
"type": "bool_prefix",
"fields": [
"aliases.names.suggest",
"aliases.names.suggest._2gram",
"aliases.names.suggest._3gram"
]
}
}
}
},
"field_value_factor": {
"field": "rating"
},
"boost_mode": "replace"
}
}
]
}
},
"highlight": {
"fields": {
"names.suggest": {
}
},
"fragment_size": 10,
"pre_tags": [
""
],
"post_tags": [
""
]
}
}
我想显示原始名称,如果查询匹配它和原始名称+别名它匹配别名和不匹配的名称。例如:
尼科尔·费尔南多(杰米·费尔南多、汤姆·费尔南多)
对于查询'fern'我需要显示'nicol fernand',对于'jam'我需要显示'nicol fernand(jame fernand')
在这种情况下,突出显示不起作用。我怎么会有这种行为?
1条答案
按热度按时间7kqas0il1#
可以使用如下命名查询: