def get_across_multiple_pages(query, sort, indexes, doctypes): #todo: remove, use walk udocs = [] size = 100 start = 0 totalhits = 100 while start < totalhits: search_object = pyes.Search( query=query, size=size, start=start) if sort: result = conn.search( query=search_object, indexes=indexes, doctypes=doctypes, sort=sort) else: result = conn.search( query=search_object, indexes=indexes, doctypes=doctypes) totalhits = result['hits']['total'] for doc in result['hits']['hits']: udocs.append(get_source(doc)) start += size return udocs
def get_docs(doctype, index, sort_field=None, size=None, skip=None): query_params = { } if size == None: size = 2000 query_params['size'] = size if skip: query_params['start'] = skip if sort_field: query_params['sort'] = sort_field try: query = pyes.MatchAllQuery() search = pyes.query.Search(query, **query_params) docs = conn.search(search, indices=[index], doc_types=[doctype]) except pyes.exceptions.SearchPhaseExecutionException: return [] udocs = [] for d in docs: doc = convert_to_legacy_format(d) udocs.append(get_source(doc)) return udocs
def get_versions(doctype, eid): q = pyes.TermQuery("meta.original", eid) # todo: get rid of fixed size limit docs = conn.search( query=q, size=1000, indexes=[version_index], sort="meta.modified") udocs = [] for d in docs['hits']['hits']: udocs.append(get_source(d)) return udocs