def post(self, request, entity, **kwargs): data = request.data size = request.query_params.get("size", "10") from_ = request.query_params.get("from", "0") search = SerializerSearch(None) result = search.raw_query(query_body=data, entity=entity, size=int(size), from_=int(from_)) return Response(result)
def get(self, request, **kwargs): search = SerializerSearch(None) q = request.GET.get("q") if not q: raise ParseError( "q parameter is required, data format can be found at https://www.elastic.co/guide/en/elasticsearch/reference/current/search-search.html") result = search.raw_query(q) return Response(result)
def get(self, request, entity, **kwargs): search = SerializerSearch(None) q = request.query_params.get("q") size = request.query_params.get("size", "10") from_ = request.query_params.get("from", "0") if not q: raise ParseError( "q parameter is required, data format can be found at https://www.elastic.co/guide/en/elasticsearch/reference/current/search-search.html") result = search.raw_query(query=q, entity=entity, size=int(size), from_=int(from_)) return Response(result)
def get(self, request, language, index_name, **kwargs): search = SerializerSearch(index_name) q = request.GET.get("q") logging.warn(q) if not q: raise ParseError("q parameter is required, data format can be found at https://www.elastic.co/guide/en/elasticsearch/reference/current/search-search.html") result = search.paginated_search(q, request, language) return result
def delete_in_es(self, entity): search = SerializerSearch(entity) page = 1 while True: results = search.list_all(page) print(results) if not results: break for result in results: instance = MODEL_DOC_MAP[entity].objects.language("all").filter(id=result["id"]) if not instance: search.delete_by_id(result["id"]) page = page + 1
def handle(self, *args, **options): entity = options.get("entity") if entity: entity_search = SerializerSearch(entity) else: entity_search = None entity_id = options.get("entity_id") if entity_id: entity_instances = MODEL_DOC_MAP[entity].objects.language("all").filter(id=entity_id) else: entity_instances = [] if options.get("destroy"): if entity_search: if entity_id: for instance in entity_instances: logging.info("Destroying instance of %s with %s and language %s" % (entity, entity_id, instance.language_code)) entity_search.delete(instance) time.sleep(1) else: logging.info("Destroying all instance of %s" % entity) instances = MODEL_DOC_MAP[entity].objects.language("all").all() for instance in instances: entity_search.delete(instance) else: logging.info("Nuclear option detected, executing. Thing could take some time") remove_popit_index() time.sleep(10) # Now we add if entity: if entity_id: for instance in entity_instances: try: logging.info("Add instance of %s with %s and language %s" % (entity, entity_id, instance.language_code)) entity_search.add(instance, SERIALIZER_DOC_MAP[entity]) #time.sleep(1) except SerializerSearchInstanceExist: logging.warn("Oops instance exist in db") continue else: popit_indexer(entity) else: popit_indexer(entity)
def post(self, request, **kwargs): data = request.data search = SerializerSearch(None) result = search.raw_query(query_body=data) return Response(result)