2017-09-29 21 views
0

我有以下類型的映射。如何使用屬性散列進行聚合時獲取原始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鍵,以防我在其散列上進行聚合。我怎樣才能做到這一點。

回答

1

你可以這樣做:

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假定不存在散列衝突,但是這是可以修改的。

根據您的數據,它應該足夠快。