要保持Elasticsearch中自动建议搜索的顺序,您可以使用completion字段类型和prefix查询。
首先,您需要在索引映射中定义一个completion字段类型。下面是一个示例映射的JSON代码:
PUT /my_index
{
"mappings": {
"properties": {
"suggest": {
"type": "completion"
}
}
}
}
然后,您可以将文档添加到索引中,包括建议字段的值。下面是一个示例文档的JSON代码:
POST /my_index/_doc/1
{
"suggest": "Elasticsearch"
}
接下来,您可以使用prefix查询来获取建议的结果。prefix查询将返回与指定前缀匹配的建议结果,同时保持它们的顺序。下面是一个使用prefix查询的示例代码:
POST /my_index/_search
{
"suggest": {
"my_suggestion": {
"prefix": "elas",
"completion": {
"field": "suggest"
}
}
}
}
在上面的示例代码中,prefix查询的prefix参数设置为"elas",表示我们希望返回以"elas"开头的建议结果。completion字段指定了建议字段的名称。
最后,您将获得与指定前缀匹配的建议结果,并且它们将按照它们在建议字段中的顺序返回。
请注意,为了使自动建议工作,您还需要安装和配置Elasticsearch的自动建议插件。您可以通过执行以下命令来安装插件:
bin/elasticsearch-plugin install analysis-icu
然后,您需要重新启动Elasticsearch以使更改生效。
希望这可以帮助到您!
上一篇:保持EC2实例的IP地址不变