Перевод запроса 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 и дает точное количество для меня.

Другие вопросы по тегам