Перевод запроса ElasticSearch Facets в PyES
У меня есть следующий запрос, и я хочу изменить этот запрос в PyES:
{
"facets": {
"participating-org.name": {
"terms": {
"field": "participating-org.name"
},
"nested": "participating-org"
}
}
}
Я искал в документации PyES о:
класс pyes.facets.TermsFacetFilter(поле = нет, значения = нет, _имя = нет, исполнение = нет, **kwargs)
И я не знаю, как его использовать, и я не смог найти примеров, связанных с ним. Надеюсь увидеть в будущем ребят из PyES с хорошей документацией и примерами.
1 ответ
Решение
Я только что узнал себя:
from pyes import *
from pyes.facets import *
conn = ES('localhost:9200', default_indices='org', default_types='activity')
q2 = MatchAllQuery().search()
q2.facet.add_term_facet('participating-org.role', nested="participating-org")
# Displays the ES JSON query.
print q2
resultset = conn.search(q2)
# To display the all resultsets.
for r in resultset:
print r
# To display the facet counts.
print resultset.facets
Этот код дает приведенный выше код JSON и дает точное количество для меня.