[Elasticsearch] BadRequestError: BadRequestError(400, 'search_phase_execution_exception', 'runtime error')

yoonene·2023년 3월 15일
0

Elasticsearch

목록 보기
12/14
    body = {
            "query": {
                "script_score": {
                    "query": {"match_all": {}},
                    "script": {
                        "source": "cosineSimilarity(params.query_vector, doc['text_vector']) + 1.0",
                        "params": {"query_vector": query_vector}
                    }
                }
            }
        }
    res = es.search(index=INDEX, body=body)

이런 식으로 cosine similarity를 score algorithm으로 검색하려 하였으나 다음과 같은 오류가 발생했다.

BadRequestError: BadRequestError(400, 'search_phase_execution_exception', 'runtime error')

문제 원인 : index를 만들 때 field의 data type을 setting.json 파일을 통해 지정했었는데, 이 부분이 잘 되지 않아서 data type이 "dense_vector"로 되어있지 않고 "float"으로 되어있었다.

해결 : elasticsearch 도커 파일을 지우고 다시 만들면서 nori를 다시 설치하지 않아 설정이 되지 않았다. 따라서 nori를 설치한 후 다시 indexing하였다.

정리하자면, 이 에러는 field data type이 제대로 설정되지 않았기 때문에 발생한 문제였다.

profile
NLP Researcher / Information Retrieval / Search

0개의 댓글