簡體   English   中英

嵌套數組元素的Elasticsearch查詢策略

[英]Elasticsearch query strategy for nested array elements

我正在嘗試按顏色查找結果。 在數據庫中,它以rgb格式記錄:三個數字的數組,分別代表red, green, and blue值。

它是如何存儲在db和elasticsearch記錄中的(在數組中存儲4種rgb顏色):

"color_data": 
    [
        [253, 253, 253], 
        [159, 159, 159], 
        [102, 102, 102], 
        [21, 21, 21]
    ]

有沒有可以讓我找到similar顏色的查詢策略? 即完全匹配還是在rgb值的近范圍內?

這是我正在嘗試的方法,但是訪問數組值的尋址方法不起作用:

curl -X GET 'http://localhost:9200/_search' -d '{
    "from": 0,
    "size": 50,
    "range": {
        "color_data.0.0": {
            "gte": "#{b_lo}",
            "lte": "#{b_hi}"
        },
        "color_data.0.1": {
            "gte": "#{g_lo}",
            "lte": "#{g_hi}"
        }
    }
}'

(從color_data變量中記錄的rgb值將r_lo,r_hi等設置為+/- 10)

  • 首先,您應該將通道數據移動到單獨的字段(或至少移動到object字段)

  • 如果您需要簡單的匹配算法(±偏差而不計分),則可以執行簡單的filter>range查詢,並在查詢中傳遞模糊性閾值。

  • 如果你需要得分( 多少類似的是文檔是),那就必須執行腳本的查詢。 看看這篇文章

順便說一句,我強烈建議您在HSL空間中工作,如果您需要這樣的操作,將會獲得更好的結果。 這個例子

暫無
暫無

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

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