Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
 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)
Пример #4
0
    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
Пример #5
0
    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
Пример #6
0
    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)
Пример #7
0
 def post(self, request, **kwargs):
     data = request.data
     search = SerializerSearch(None)
     result = search.raw_query(query_body=data)
     return Response(result)