2016-07-14 77 views
0

我试图从ElasticSearch获取所有独特的suite_name字段,但我的aggs没有返回任何存储桶。Aggregation returns no buckets

我使用这个映射

{ 
    "functional_tests": { 
    "mappings": { 
     "web_test_result": { 
     "properties": { 
      "duration": { 
      "type": "long" 
      }, 
      "fail_category": { 
      "type": "string" 
      }, 
      "fail_info": { 
      "properties": { 
       "message": { 
       "type": "string" 
       }, 
       "screenshot_url": { 
       "type": "string" 
       }, 
       "stack": { 
       "type": "string" 
       } 
      } 
      }, 
      "fail_message": { 
      "type": "string" 
      }, 
      "fail_stack": { 
      "type": "string" 
      }, 
      "file": { 
      "type": "string" 
      }, 
      "finish_time": { 
      "type": "date", 
      "format": "strict_date_optional_time||epoch_millis" 
      }, 
      "instance_id": { 
      "type": "long" 
      }, 
      "order_number": { 
      "type": "long" 
      }, 
      "query": { 
      "properties": { 
       "term": { 
       "properties": { 
        "instance_id": { 
        "type": "long" 
        }, 
        "suite_name": { 
        "type": "string" 
        } 
       } 
       } 
      } 
      }, 
      "screenshot_url": { 
      "type": "string" 
      }, 
      "size": { 
      "type": "long" 
      }, 
      "status": { 
      "type": "string" 
      }, 
      "suite_id": { 
      "type": "string" 
      }, 
      "suite_title": { 
      "type": "string", 
      "fields": { 
       "raw": { 
       "type": "string", 
       "index": "not_analyzed" 
       } 
      } 
      }, 
      "test_id": { 
      "type": "string" 
      }, 
      "test_title": { 
      "type": "string", 
      "fields": { 
       "raw": { 
       "type": "string", 
       "index": "not_analyzed" 
       } 
      } 
      }, 
      "timedOut": { 
      "type": "boolean" 
      } 
     } 
     } 
    } 
    } 
} 

aggs

GET functional_tests/web_test_result/_search 
{ 
    "size": 0, 
    "aggs" : { 
    "suite_titles" : { 
     "terms" : { 
     "field" : "suite_title.raw", 
     "size" : 1000 
     } 
    } 
    } 
} 

返回我这个

{ 
    "took": 1, 
    "timed_out": false, 
    "_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
    }, 
    "hits": { 
    "total": 3383, 
    "max_score": 0, 
    "hits": [] 
    }, 
    "aggregations": { 
    "suite_titles": { 
     "doc_count_error_upper_bound": 0, 
     "sum_other_doc_count": 0, 
     "buckets": [] 
    } 
    } 
} 

如果我做aggssuite_id,这是一个单一令牌,我得到桶。

回答

0

从映射您可以验证您的suite_idstring型和Elasticsearch的默认映射是not_analyzed

.raw可以被分析领域,其中suite_id.raw会给你不分析价值和suite_id会给你分析的价值。

您没有任何分析值,因此没有.raw字段。您只能使用suite_id