我正在使用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"
工作正常,但是如果我尝试使用错误消息中的文档编号,则此操作将失败。
我希望这是微不足道的,但是有些Google未能提供帮助。
然后如何找到该文档?还是不建议使用我自己的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}
}
}
}
}