簡體   English   中英

基於多值字段中元素的Elasticsearch排序

[英]Elasticsearch sort based on element in multivalue field

是否可以根據多值字段中存在的元素進行排序?

例:

a)  document with "111" 

put test/test/1
{
   "bit_position" : [
        1,
        2,
        3
    ]
}

b) document with 010
put test/test/2
{
   "bit_position": [
      2
   ]
}

基於"bit_position" = 3排序應返回文檔a,然后返回b。

我了解到這可能是嵌套字段,但是當未嵌套bit_position時找不到任何信息。

我發現了這個問題: 在Elasticsearch的多值字段中按值排序,但尚未得到回答。

謝謝

我通過使用function_score解決了這個問題:

POST test/_search
{
    "query": {
        "function_score": {
            "match_all": {},
            "functions": [
                {
                    "filter": {
                        "terms": {
                           "bit_position": [
                              1,
                              3
                           ]
                        }
                    },
                    "weight": 2
                }
            ],
            "score_mode": "multiply"
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM