#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?