ElasticSearch按值排序

ElasticSearch按值排序,第1张

ElasticSearch按值排序 使用手动排序进行Elasticsearch排序

elasticsearch
可以根据字段的特定值分配顺序的情况下,这是可能的。

我已经使用基于脚本的排序实现了您要查找的内容,该排序利用了无痛脚本。您可以参考我提到的链接,以了解更多有关以下查询的内容,这些内容足以满足您的需求。

还假设您在以下映射中具有

genre
and
movie
as关键字。

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"}    }]}

请注意,我已经为

genre
和同时包含了sort
movie
。基本上会发生排序,
genre
然后发布,然后
movie
针对每种类型进一步排序。

希望能帮助到你。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/4909353.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-12
下一篇2022-11-12

发表评论

登录后才能评论

评论列表(0条)

    保存