gpt4 book ai didi

sorting - ElasticSearch按值排序

转载 作者:行者123 更新时间:2023-12-02 23:17:46 24 4
gpt4 key购买 nike

我有ElasticSearch 5,我想根据字段值进行排序。想象一下,例如,文档类别为可能具有科幻,戏剧,喜剧等值(value)的类型,在搜索时,我想对值(value)进行排序,以便首先出现喜剧,然后是科幻和戏剧。然后,我当然会按照其他条件在小组内订购。有人可以指出我该怎么做吗?

最佳答案

使用手动排序进行Elasticsearch排序

这可以在elasticsearch中进行,您可以在其中根据字段的特定值分配顺序。

我已经实现了使用script based sorting脚本的painless寻找的东西。您可以引用我提到的链接,以了解更多有关以下查询的内容,这些内容足以满足您的需求。

还要假设您使用下面的映射将genremovie作为关键字。

PUT sampleindex
{
"mappings": {
"_doc": {
"properties": {
"genre": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"movie": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
}
}
}
}
}

您可以利用下面的查询来获得您想要的东西
GET sampleindex/_search
{
"query": {
"match_all": {}
},
"sort": [{
"_script": {
"type": "number",
"script": {
"lang": "painless",
"inline": "if(params.scores.containsKey(doc['genre.raw'].value)) { return params.scores[doc['genre.raw'].value];} return 100000;",
"params": {
"scores": {
"comedy": 0,
"sci-fi": 1,
"drama": 2
}
}
},
"order": "asc"
}
},
{ "movie.raw": { "order": "asc"}
}]
}

请注意,我已经包括了 genremovie的排序。基本上,排序会在 genre上进行,然后发布,然后针对每种类型,它会基于 movie进行排序。

希望能帮助到你。

关于sorting - ElasticSearch按值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52790080/

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