[英]Elastic Search sort query
我是彈性搜索的新手,想知道是否可以使用常規術語,范圍查詢和排序來完成以下操作,或者是否需要使用彈性搜索聚合查詢
我有一組帶有幾個字符串字段和一個日期字段的文檔。 我想選擇與字符串字段中的兩個完全匹配(條件查詢)且日期在某個日期范圍內的那些文檔的前N個,並獲取這些前N個文檔的計數
一個典型的文檔將是
{ "_id" : ObjectId("55b0a8b448f3bdb6bf26683c"),
"type" : "type1",
"time-gmt" : ISODate("2015-07-23T08:41:29.299Z"),
"sID" : "id1"}
我想查找某個“時間范圍”范圍內的類型為“ type 1”的前10個文檔,以及這10個頂級文檔中有多少個。 因此,結果集表將
sID1 120
sID2 100
sID3 90
...
sID10 3
如果我正確理解了您的問題,則可以使用存儲桶聚合來實現您要查找的內容(特定type
的文檔數)的一部分。
存儲桶聚合使您可以將文檔分組到一個或多個存儲桶中。 這里的更多信息:
https://www.elastic.co/guide/zh-CN/elasticsearch/reference/current/search-aggregations.html
和這里:
在您的特定情況下,我認為您可以通過類似於以下內容的查詢來查詢Elasticsearch集群:
curl -XPOST 'http://<your-elasticsearch-cluster-endpoint>/_all/_search?pretty' -d '{
"size": 0,
"aggregations": {
"type_agg": {
"filter": {
"time-gmt": {
"from":<tick>,
"to":<tick>
}
},
"terms": {
"field": "type"
}
}
}
}'
我相信此查詢將使您根據在type
字段中找到的值來計算文檔數。
希望這會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.