gpt4 book ai didi

sorting - 如何在Elasticsearch6.8中根据字符串顺序对文档进行排序

转载 作者:行者123 更新时间:2023-12-03 02:30:48 25 4
gpt4 key购买 nike

在Elasticsearch 6.8中,我有以下文档:

{
...
item: 'AAA',
...
},
{
...
item: 'BBB',
...
},
{
...
item: 'CCC',
...
}

并且在查询请求中,有一个用于 item字段的过滤器,如下所示。
"query": {
"bool": {
"filter": [
{
"terms": {
"item": [
"BBB", "CCC"
]
}
}
],
"should": [
{
"match": {
"name": "Mike"
}
}
],
"minimum_should_match": 1
}

我想要的是根据请求数组中的项目顺序对匹配的文档进行排序。以上面的示例为例,它过滤在 BBB字段中包含 CCCitem的文档。我想看到带有 BBB的文档比带有 CCC的文档得分更高,因为用户在查询请求中将 BBB放在 CCC之前。如何在Elasticsearch中实现这一目标?

最佳答案

要基于创建日期获得评分,您需要向每个文档添加create_timestamp。 (您可以使用管道来实现。例如:https://discuss.elastic.co/t/creation-and-update-timestamps-for-each-doc/93456/2)

一旦有了create_timestamp,就可以使用相同的结果对结果进行排序。方法如下:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-request-sort.html

要使用create_timestamp重新标记文档,可以在日期上使用带有“field_value_factor”的“function_score”。
下面是一个示例:https://github.com/elastic/elasticsearch/issues/11872

关于sorting - 如何在Elasticsearch6.8中根据字符串顺序对文档进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60048991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com