2014-12-16 2 views
0

Я ищу способ для запроса распределения верхних значений п для многих полого объекта в одном запросеКак запросить многие аспекты в одном запросе elasticsearch

Моего объект в упругом поиске выглядит следующим образом:

obj: { 
    os: "Android", 
    device_model: "Samsung Galaxy S II (GT-I9100)", 
    device_brand: "Samsung", 
    os_version: "Android-2.3", 
    country: "BR", 
    interests: [1,2,3], 
    behavioral_segment: ["sport", "lifestyle"] 

} 

следующий запрос приносит распределение значений для конкретного поля с числом появлений этого значения только для пользователей Великобритании

curl -XPOST http://<endpoint>/profiles/_search?search_type=count -d ' 
{ 
    "query": { 
     "match": { 
     "country" : "UK" 
    } 
}, 
"facets": { 
    "ItemsPerCategoryCount": { 
     "terms": { 
      "field": "behavioral_segment" 
     } 
    } 
    } 
}' 

Как я могу запросить для многих тьфу lds - например, я хотел бы получить результат для behavioral_segment и device_brand и os в одном запросе. Является ли это возможным?

ответ

1

В разделе фасеток запроса вы должны использовать параметр fields.

"facets": { 
    "ItemsPerCategoryCount": { 
    "terms": { 
     "fields": ["behavioral_segment","device_brand"] 
    } 
    } 
} 

Это должно решить вашу проблему, но, конечно, это не могло бы согласованность гарантирует данные

+1

Македонских, спасибо! Но в этом случае, как я могу определить, какая ценность принадлежит к какой области? – Julias

+1

Если вы хотите использовать грани в более чем одном поле, вы не можете! В том же запросе вам придется использовать две отдельные грани. – eliasah

+1

Спасибо, просто использовал его. Кроме того, я видел, что грани устарели в последней версии. Согласно документам, api должен использовать агрегаты – Julias

Смежные вопросы