gpt4 book ai didi

Elasticsearch 按数组的第一个元素排序

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

我正在使用 Elasticsearch 5.5 并且有一个带有此类映射的索引:

{
"my_index": {
"mappings": {
"my_type": {
"properties": {
"title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"my_array": {
"properties": {
"array": {
"type": "float"
},
"length": {
"type": "long"
}
}
}
}
}
}
}
}

我想按标题搜索并按数组中的第一个值排序。将第一个值设置为 _score 也很棒。 field 。
所以,我准备了这样的请求:
GET my_index/my_type/_search
{
"query": {
"term": {
"title.keyword": "Shorts"
}
},
"sort" : {
"_script" : {
"type" : "number",
"script" : {
"lang": "painless",
"inline": "doc['my_array.array'][0]"
},
"order" : "asc"
}
}
}

不幸的是它不起作用。我觉得缺少某些东西或错误。

最佳答案

使用该 Painless 脚本的正确方法是这样的:

{
"query": {
"term": {
"title.keyword": "Shorts"
}
},
"sort": {
"_script": {
"type": "number",
"script": {
"lang": "painless",
"inline": "params._source.my_array.array[0]"
},
"order": "asc"
}
}
}

关于Elasticsearch 按数组的第一个元素排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47002146/

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