【问题标题】:Range query on subfield array with elasticsearch使用elasticsearch对子字段数组进行范围查询
【发布时间】:2017-12-17 04:15:42
【问题描述】:

我正在尝试使用不同于 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
           },

【问题讨论】:

    标签: php arrays elasticsearch range field


    【解决方案1】:

    这是一个经典的全文搜索示例,您可以编写一个非常复杂的查询来涵盖这一点,或者您可以在索引时间上对其进行优化,从而获得非常便宜的查询。如果您将数据模型更改为包含所有值为01 的服务的字段,则可以轻松搜索该字段,即

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

    突然之间,您的查询可以轻松地搜索或汇总这些字段。

    并不是说这将完全适合您的用例,但我认为值得在这里重新考虑数据建模策略。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多