def test_type(self): f = filters.TypeFilter(type=self.document_type) q = Search(filter=f) print self.dump(q.serialize()) result = self.conn.search(query=q, indices=self.index_name, doc_types=[]) self.assertEqual(2, len(result.hits)) print result.hits self.assertItemsEqual([u'1', u'2'], [item._id for item in result.hits]) f = filters.TypeFilter(type=self.internal_type) q = Search(filter=f) result = self.conn.search(query=q, indices=self.index_name, doc_types=[]) self.assertEqual(1, len(result.hits)) self.assertItemsEqual([u'4'], [item._id for item in result.hits])
ftrans = FormatTranslator() # 1. Create Connection conn = ES() # 2. Index Data dataset_json = open("../dataset.json") dataset = json.load(dataset_json)['data'] for data in dataset: conn.index(data, "example_index", "example_type", "example_id_" + str(dataset.index(data))) # 3. Create Simple Query query = MatchAllQuery() # 4. Create Simple Aggregation agg = TermsAgg('agg1', field="name", sub_aggs=[], size=100) # 5. Get Result search = Search(query, size=5) search.agg.add(agg) print search.serialize() result = conn.search(search, "example_index", "example_type") for i in result: print json.dumps(i, indent=2) print json.dumps(result.aggs, indent=2) result._do_search() print json.dumps(result._results, indent=2)
import json from pyes import ES, Search from pyes.aggs import TermsAgg, SumAgg, FilterAgg, DateHistogramAgg from pyes.exceptions import IndexMissingException from pyes.query import MatchAllQuery, BoolQuery, RangeQuery, ESRange, TermQuery from pyes.filters import TermFilter, TermsFilter match_all = MatchAllQuery() sub_domain_agg = TermsAgg('domain_agg', field='json_data.etp_domain_id', size=20000) client_agg = TermsAgg('client_agg', field='json_data.etp_client_id', sub_aggs=[sub_domain_agg], size=20000) search_query = Search(query=match_all, size=0) search_query.agg.add(client_agg) print(json.dumps(search_query.serialize(), indent=2))
ftool = FileTools() ftrans = FormatTranslator() # 1. Create Connection conn = ES() # 2. Index Data dataset_json = open("../dataset.json") dataset = json.load(dataset_json)['data'] for data in dataset: conn.index(data, "example_index", "example_type", "example_id_"+str(dataset.index(data))) # 3. Create Simple Query query = MatchAllQuery() # 4. Create Simple Aggregation agg = TermsAgg('agg1', field="name",sub_aggs=[],size=100) # 5. Get Result search = Search(query,size=5) search.agg.add(agg) print search.serialize() result = conn.search(search, "example_index", "example_type" ) for i in result: print json.dumps(i,indent=2) print json.dumps(result.aggs,indent=2) result._do_search() print json.dumps(result._results,indent=2)