将ElasticSearch Facets查询转换为PyES

时间:2012-09-06 05:33:45

标签: elasticsearch facets pyes

我有以下查询,我想将该查询更改为PyES:



    {
      "facets": {
        "participating-org.name": {
          "terms": {
            "field": "participating-org.name"
          },
          "nested": "participating-org"
        }
      }
    }


我在PyES文档中搜索过:

class pyes.facets.TermsFacetFilter(field = None,values = None,_name = None,execution = None,** kwargs)

我不知道如何使用它加上我找不到任何与之相关的例子。希望看到PyES的人们在将来提供带有良好文档的例子。

1 个答案:

答案 0 :(得分:4)

我刚刚发现自己:



    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代码,并为我提供了准确的计数。