2014-09-08 6 views
0

Я пытаюсь создать отличные совпадения по базе на основе поля, но я застрял.Объединить агрегацию агрегата с условием «где»?

Как я могу объединить мощность и состояние, подобное "select distinct(lastname) from table where name like 'George%'"?

Как я могу использовать условие «где» с кардинальностью?

{ 
    "aggs" : { 
     "test_count" : { 
      "cardinality" : { 
       "field" : "lastname" 
      } 
     } 
    } 
} 

ответ

1

ли вы попробовать что-то, как показано ниже, чтобы получить различные подсчеты lastNames с firstName, как 'Джордж'

curl -X POST "http://localhost:9200/gccount/Customer/_search?pretty=true" -d'      
{                         
    "query": {                      
    "fuzzy_like_this_field" : {                  
     "firstName" : {                     
      "like_text" : "George",                
      "max_query_terms" : 12                 
     }                       
    }                        
    },                        
    "aggs": {                       
     "distinct_lastNames": {                  
     "terms": {                     
      "field": "lastName"                  
     }                       
     }                        
    }                         
}' 

Он работал для меня по умолчанию analyzer в elasticsearch поле firstName.

Es Response

"aggregations": { 
     "distinct_lastNames": { 
     "buckets": [ 
      { 
       "key": "Upd", 
       "doc_count": 1 
      }, 
      { 
       "key": "Bale", 
       "doc_count": 2 
      } 
     ] 
     } 
    } 

литературы,

https://github.com/prayagupd/gccount/blob/master/gccount-analytics/scripts/search_customer_like.sh#L21

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-flt-field-query.html

+0

еще не работает. Когда я запускаю ваш запрос, у меня есть все документы. – placplacboom

+0

@placplacboom Можете ли вы опубликовать свое сопоставление и результат запроса или где-нибудь? – prayagupd

+0

Теперь он работает. Я использовал другое значение, свою ошибку. Спасибо вам за помощь. – placplacboom