2016-08-03 41 views
0

鍵我有一個彈性的搜索類型下面的測繪成果:排除基於在elasticsearch

"properties": { 
    "userid": { 
     "type": "integer" 
    }, 
    "engid": { 
     "type": "short" 
    }, 
    "score": { 
     "type": "short", 
    }, 
    "name": { 
     "type": "string", 
     "index": "not_analyzed" 
    }, 
    "submitTime": { 
     "type": "date", 
     "format": "yyyy-MM-dd HH:mm:ss" 
    } 

}

我的搜索查詢爲:

{ 
    "size": 10, 
    "query": { 
    "filtered": { 
     "query": { 
     "match_all": {} 
     }, 
     "filter": { 
     "range": { 
      "submitTime": { 
      "gt": "now-18d" 
      } 
     } 
     } 
    } 
    }, 
    "aggs": { 
    "name": { 
     "terms": { 
     "field": "name", 
     "order": { 
      "_term": "asc" 
     } 
     }, 
     "aggs": { 
     "score": { 
      "terms": { 
      "field": "score" 
      } 
     } 
     } 
    } 
    } 
} 

這是給我的預期結果爲:

"aggregations": { 
     "name": { 
     "doc_count_error_upper_bound": 0, 
     "sum_other_doc_count": 0, 
     "buckets": [ 
      { 
       "key": "---", 
       "doc_count": 169529, 
       "score": { 
        "doc_count_error_upper_bound": 0, 
        "sum_other_doc_count": 0, 
        "buckets": [ 
        { 
         "key": 0, 
         "doc_count": 160133 
        }, 
        { 
         "key": 5, 
         "doc_count": 9395 
        }, 
        { 
         "key": 4, 
         "doc_count": 1 
        } 
        ] 
       } 
      }, 
      { 
       "key": "John", 
       "doc_count": 1, 
       "score": { 
        "doc_count_error_upper_bound": 0, 
        "sum_other_doc_count": 0, 
        "buckets": [ 
        { 
         "key": 5, 
         "doc_count": 1 
        } 
        ] 
       } 
      } 

現在我想從名稱='---'的結果中刪除存儲桶。我嘗試使用'不',但它沒有奏效。任何暗示將不勝感激。

PS:我是elasticsearch的新手,只是想擴大我的知識面。

回答

2

您需要在您的查詢中排除---

{ 
    "size": 10, 
    "query": { 
    "filtered": { 
     "query": { 
     "match_all": {} 
     }, 
     "filter": { 
     "bool": { 
      "must": [ 
      { 
       "range": { 
       "submitTime": { 
        "gt": "now-18d" 
       } 
       } 
      } 
      ], 
      "must_not": [ 
      { 
       "term": { 
       "name": "---" 
       } 
      } 
      ] 
     } 
     } 
    } 
    }, 
    "aggs": { 
    "name": { 
     "terms": { 
     "field": "name", 
     "order": { 
      "_term": "asc" 
     } 
     }, 
     "aggs": { 
     "score": { 
      "terms": { 
      "field": "score" 
      } 
     } 
     } 
    } 
    } 
} 
+0

由於它的工作對我來說:) –

+0

很高興這奏效了! – Val