ElasticSearch 上 Long 类型的嵌套查询 (ES 5.0.4)

Nested query on ElasticSearch for Long type (ES 5.0.4)

这是我关于 Stack overflow 的第一个问题,请原谅我的错误。将来我会改进它们。 我也是弹性搜索的新手。好的,所以我正在尝试在弹性搜索(5.0.4)中进行精确匹配。请求 returns 所有存在的文件,而不是进行精确匹配。 不确定这种行为。

这是映射

{
   "properties":{
      "debug_urls":{
         "properties":{
            "characteristics":{
               "type":"text",
               "fields":{
                  "keyword":{
                     "type":"keyword",
                     "ignore_above":256
                  }
               }
            },
            "url_id":{
               "type":"long"
            }
         },
         "type":"nested"
      },
      "scanId":{
         "type":"text",
         "fields":{
            "keyword":{
               "type":"keyword",
               "ignore_above":256
            }
         }
      }
   }
}

这是我的要求。

{
    "query": {
        "nested": {
           "path": "debug_urls",
           "query": {
               "match": {
                  "debug_urls.url_id": 1
               }
           }
        }
    }
}

收到回复,

{
   "took":1,
   "timed_out":false,
   "_shards":{
      "total":5,
      "successful":5,
      "failed":0
   },
   "hits":{
      "total":1,
      "max_score":1,
      "hits":[
         {
            "_index":"cust_cca39c0c6c8141008e9411032bbf4d21",
            "_type":"debug-urls",
            "_id":"AW70h0l72s9qXitMsWgC",
            "_score":1,
            "_source":{
               "scan_id":"n_a0a523fb5c81435fb79c34c624c7fbd6",
               "debug_urls":[
                  {
                     "url_id":1,
                     "characteristics":[
                        "FORM",
                        "EXTERNAL_SCRIPT",
                        "INLINE_SCRIPT"
                     ]
                  },
                  {
                     "url_id":2,
                     "characteristics":[
                        "EXTERNAL_SCRIPT",
                        "INLINE_SCRIPT"
                     ]
                  },
                  {
                     "url_id":3,
                     "characteristics":[
                        "EXTERNAL_SCRIPT",
                        "INLINE_SCRIPT"
                     ]
                  },
                  {
                     "url_id":4,
                     "characteristics":[
                        "EXTERNAL_SCRIPT",
                        "INLINE_SCRIPT"
                     ]
                  },
                  {
                     "url_id":5,
                     "characteristics":[
                        "EXTERNAL_SCRIPT",
                        "INLINE_SCRIPT"
                     ]
                  },
                  {
                     "url_id":6,
                     "characteristics":[
                        "EXTERNAL_SCRIPT",
                        "INLINE_SCRIPT"
                     ]
                  },
                  {
                     "url_id":7,
                     "characteristics":[
                        "EXTERNAL_SCRIPT",
                        "INLINE_SCRIPT"
                     ]
                  }
               ]
            }
         }
      ]
   }
}

如果您只想查看符合条件的嵌套文档,您可以利用 nested inner_hits:

{
    "_source":["scan_id"],                     <--- add this line
    "query": {
        "nested": {
           "path": "debug_urls",
           "query": {
               "match": {
                  "debug_urls.url_id": 1
               }
           },
           "inner_hits": {}                    <--- add this line
        }
    }
}