lasticsearch.exceptions.Ошибка запроса или search_phase_execution_exception’, ‘ошибка компиляции’)

#docker #elasticsearch

#docker #эластичный поиск

Вопрос:

Я создал систему ElasticSearch с внедрениями с использованием плотного вектора. На все мои простые запросы получены правильные ответы, однако я получаю ошибку при попытке запроса скрипта. Ошибка и запрос перечислены ниже для справки:

    response = es.search(index=INDEX_NAME, body=body, request_timeout=120)
  File "/home/narora/miniconda3/lib/python3.8/site-packages/elasticsearch/client/utils.py", line 152, in _wrapped
    return func(*args, params=params, headers=headers, **kwargs)
  File "/home/narora/miniconda3/lib/python3.8/site-packages/elasticsearch/client/__init__.py", line 1658, in search
    return self.transport.perform_request(
  File "/home/narora/miniconda3/lib/python3.8/site-packages/elasticsearch/transport.py", line 392, in perform_request
    raise e
  File "/home/narora/miniconda3/lib/python3.8/site-packages/elasticsearch/transport.py", line 358, in perform_request
    status, headers_response, data = connection.perform_request(
  File "/home/narora/miniconda3/lib/python3.8/site-packages/elasticsearch/connection/http_urllib3.py", line 269, in perform_request
    self._raise_error(response.status, raw_data)
  File "/home/narora/miniconda3/lib/python3.8/site-packages/elasticsearch/connection/base.py", line 315, in _raise_error
    raise HTTP_EXCEPTIONS.get(status_code, TransportError)(
elasticsearch.exceptions.RequestError: RequestError(400, 'search_phase_execution_exception', 'compile error')
 

Формулировка запроса выглядит следующим образом:

    similar_query = {
        "script_score":{
            "query":{"match_all":{}},
            "script":{
                "source":"cosineSimilarity(params.query_vector, 'uspanEmbedding') 1.0",
                    "params": {
                        "query_vector": query_vector
                    }
            }
        }
}
 

localhost:9200index_name возвращает правильные сопоставления и структуру индекса. Кроме того, последний запрос, который отправляется на сервер ElasticSearch, является:

 {'script_score': {'query': {'match_all': {}}, 'script': {'source': "cosineSimilarity(params.query_vector, 'vector') 1.0", 'params': {'query_vector': array([-0.02412165, -0.09792256, -0.00478891, -0.03519602,  0.01591916,....])
 

Ответ №1:

Удалите array() ключевое слово таким образом, чтобы

 'query_vector': array([-0.02412165, -0.09792256, -0.00478891, -0.03519602,  0.01591916,....]
 

становится

 'query_vector': [-0.02412165, -0.09792256, -0.00478891, -0.03519602,  0.01591916,....]
 

Комментарии:

1. Есть какие-нибудь успехи с этим @Nidhi?