假设我有一个文档索引,每个文档都有两个字段:名称和姓氏。我想启用自动完成功能。输入一些字符串后,它将返回适合于输入的名称列表(两次没有相同的名称)(对于子字符串搜索,我有ngram子字段name.autocomplete
)。
现在,假设我有文件
Name Surname
---- -------
Max Gray
Marie White
Marie Black
Alex Red
Alex Blue
和请求
{
"size": 0,
"query": {
"bool": {
"should": [
"match": {
"name.autocomplete": {
"query": "ma"
}
}
}
]
}
"aggs": {
"names":{
"size": 2,
"terms": {
"field": "name"
}
}
}
}
此请求将返回Alex
和Marie
而不是Max
和Marie
,因为默认情况下会计算存储桶的类型(不计分)。因此,我必须以某种方式按分数对它们重新排序,但是我找不到任何有效的示例(至少对于我的6.4 ES)。也许还有一些更正确的解决方案。
谢谢。