2017-03-01 179 views
0

我有一個嵌套聚合只返回10個結果。我希望它返回1000個結果。但是,我不確定在哪裏指定大小。我的映射看起來像(其在YAML,但加工成JSON,不約,省心)彈性搜索嵌套聚集大小

 mappings: 
     datainfo: 
      properties: 
      filterValues: 
       type: string 
      metadata: 
       properties: 
       isPrimary: 
        type: boolean 
       name: 
        index: not_analyzed 
        type: string 
       source: 
        enabled: false 
        type: object 
       type: 
        index: not_analyzed 
        type: string 
       val: 
        index: not_analyzed 
        type: string 
       type: nested 
      source: 
       enabled: false 
       type: object 
      title: 
       type: string 

我的查詢看起來像

{ 
    "query": "<some query>", 
    "aggs": { 
     "series": { 
      "nested": { "path": "metadata" }, 
      "aggs": { 
       "val": { 
        "terms": { "field": "metadata.val" }, 
        "aggs": { 
         "type": { 
          "terms": { "field": "metadata.name" } 
         } 
        } 
       } 
      } 
     } 
    } 
} 

我在哪裏把「大小」字段,以讓這個返回X結果?它目前只返回10

+0

是否要指定主查詢結果的數量還是要從聚合點擊數中分組數據,並指定每個桶的結果數?如果這是總大小,那麼在這裏:https://www.elastic.co/guide/en/elasticsearch/reference/5.1/search-request-from-size.html –

回答

0

指定查詢的結果的數量,您可以使用size, or size with range:

{ 
"query": "<some query>", 
"size": 1000, 
"aggs": { 
    "series": { 
     "nested": { "path": "metadata" }, 
     "aggs": { 
      "val": { 
       "terms": { "field": "metadata.val" }, 
       "aggs": { 
        "type": { 
         "terms": { "field": "metadata.name" } 
        } 
       } 
      } 
     } 
    } 
} 

}

要指定你可以使用Top Hits Aggregation聚集桶結果的數量(鏈接示例):

{ 
    "aggs": { 
    "top-tags": { 
     "terms": { 
      "field": "tags", 
      "size": 3 
     }, 
     "aggs": { 
      "top_tag_hits": { 
       "top_hits": { 
        "sort": [ 
         { 
          "last_activity_date": { 
           "order": "desc" 
          } 
         } 
        ], 
        "_source": { 
         "includes": [ 
          "title" 
         ] 
        }, 
        "size" : 100 
       } 
      } 
     } 
    } 
    } 
} 

如果您只需要聚合結果,一種推薦方法是指定查詢結果的大小爲0,消除了第一次提取,因此性能更好。