首页 > 解决方案 > 通过 Elasticsearch 中的索引位置获取文档

问题描述

我正在使用 Elasticsearch,但出现查询错误:

elasticsearch.exceptions.TransportError: TransportError(500, 'search_phase_execution_exception', 'script score query returned an invalid score: NaN for doc: 32894')

似乎我的指标正在返回文档 32894 ( NaN for doc: 32894) 的 NaN。自然,下一步是查看该文档,看看它是否有任何问题。

问题是我使用自己的 ID 上传文件,所以“32894”对我来说毫无意义。

像这样的查询

curl -X GET "localhost:9200/my_index/_doc/one_of_my_ids?pretty&pretty"

工作正常,但如果我尝试使用错误消息中的文档编号,则会失败。

我预计这将是微不足道的,但一些谷歌未能提供帮助。

我怎样才能找到这个文件?还是不推荐使用我自己的 ID 以及此问题的不可修复来源?

编辑:根据要求,这是失败的查询。请注意,显然解决这个问题是我的最终目标,但不是这个问题的具体点。在任何一种情况下都可以得到帮助。

我在 Python 中使用 elasticsearch 库。

self.es.search(index=my_index, body=query_body, size=number_results)

query_body = {
    "query": {
        "script_score": {
            "query": {"match_all": {}},
            "script": {
                "source": "cosineSimilaritySparse(params.queryVector, doc['embedding']) + 10.0",
                "params": {"queryVector": query_vector}
            }
        }
    }
}

标签: elasticsearch

解决方案


推荐阅读