我有一个大型的弹性搜索数据库,里面有很多记录,每个记录都有一个名字字段,这是一个单词。我希望能够通过从特定字母开始的(按名称排序)结果进行翻页。例如,我希望能够开始显示名称以字母'J'开头的结果,然后能够翻阅所有剩余的结果。
这是Name当前的映射方式:
"Name": {
"type": "multi_field",
"fields": {
"name_exact": {
"type": "string",
"index": "not_analyzed"
},
"name_simple": {
"type": "string",
"analyzer": "simple"
},
"name_snow": {
"type": "string",
"analyzer": "snowball"
}
}
}
是否有可以让我这样做的查询?
答案 0 :(得分:2)
您可以使用prefix filter(默认缓存)或prefix query(不可缓存)。 请注意,查询字符串本身是不分析。
如果要对查询字符串进行分析,则应更改映射并添加edge-ngram分析字段;然后,您可以将其与match query一起使用。