如何使用属性散列进行聚合时获取原始elasticsearch映射属性

问题描述:

我有以下类型的映射。如何使用属性散列进行聚合时获取原始elasticsearch映射属性

"clean_url": { 
     "type": "keyword", 
      "fields": { 
       "hash": { 
        "type": "murmur3" 
       } 
      }, 
      "index": "false" 
     } 
    } 

现在,在这种情况下,我可以做长期聚集在这个时尚

"terms": { 
    "field": "clean_url", 
} 

"terms": { 
    "field": "clean_url.hash", 
} 

在第一种情况下,斗关键是clean_url,但在第二案例密钥是clean_url.hash。

我想要原始的clean_url键,以防我在其散列上进行聚合。我怎样才能做到这一点。

你可以这样做:

curl -XGET "http://localhost:9200/your_index/your_type/_search" -H 'Content-Type: application/json' -d' 
{ 
    "size": 0, 
    "aggs": { 
    "per_url": { 
     "terms": { 
     "field": "clean_url.hash" 
     }, 
     "aggs": { 
     "value": { 
      "terms": { 
      "field": "clean_url", 
      "size": 1 
      } 
     } 
     } 
    } 
    } 
}' 

子聚集的"size": 1假定不存在散列冲突,但是这是可以修改的。

根据您的数据,它应该足够快。