我的索引中有一个Map,如下所示:
"document_vectors": {
"type": "nested",
"properties": {
"doc_vector": {
"type": "dense_vector",
"dims": 768
}
}
}
这表示一个向量数组,这些向量与索引中的特定文档相关联。我想查询这个向量数组的余弦相似度,如下所示:
{
'size': results_size,
'query': {
"nested": {
"path": "document_vectors",
"score_mode": "max",
"query": {
"script_score": {
"script": {
"source": "document_vectors.vector.size() == 0 ? 0 : cosineSimilarity(params.query_vector, document_vectors.vector)",
"params": {"query_vector": query_vector}
}
}
}
}
}
尝试此查询时出现以下错误(此索引上的其他查询正常工作,但尝试此特定查询时出现错误):
请求错误(400,'非法参数异常','必需的[查询]')
我不知道如何解释这个错误-我是否在某个地方遗漏了“查询”字段?如果有帮助的话,我改编了this Stackoverflow post中的查询/Map。
1条答案
按热度按时间wkyowqbh1#
我也遇到了同样的问题。“script_score”似乎需要在其中包含一个“query”字段。
于是我又道:
在“脚本”字段上方,这似乎工作得很好。我正在关闭https://opensearch.org/docs/latest/search-plugins/knn/knn-score-script/以供参考。
以下是我的整体查询结构:
希望能有所帮助