簡體   English   中英

使用Elasticsearch對子字段數組進行范圍查詢

[英]Range query on subfield array with elasticsearch

我正在嘗試使用不等於0的代碼來獲取所有服務,如果不執行多個查詢,我將找不到任何方法。 這是我要查詢的數據,在此先感謝您的幫助

      "hits": [
     {
        "_index": "database_index",
        "_type": "system",
        "_id": "AV03gG7B3dd3_xKqi09H",
        "_score": 1,
        "_source": {
           "name_id": "BOX",
           "room_id": "63190",
           "event": "SysMonitor",
           "data": {
              "ip": "192.168.60.25 \n",
              "ns": "192.168.0.1\n",
              "uptime": "3:12"
           },
           "services": {
              "apache2": 1,
              "gw-flash": 0,
              "appmgr": 0,
              "watchdog": 2,
              "gui": 0,
              "usb": 0,
              "internet": 0
           },

這是一個經典的全文搜索示例,其中您可以編寫一個非常復雜的查詢來解決此問題,或者您可以在索引時間對其進行優化,從而獲得非常便宜的查詢。 如果將數據模型更改為具有包含所有值為01的服務的字段,則可以輕松地進行搜索,即

services_zero: [gwflash, appmgr]
services_one: [ apache2 ]

突然,您的查詢可以輕松地針對這些字段進行搜索或匯總。

並不是說這將完全適合您的用例,但我認為值得在這里重新考慮數據建模策略。

暫無
暫無

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

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