本文介绍了 elasticsearch中如何进行向量相似度的计算,向量数据的定义
Elasticsearch 现在是支持向量数据计算的 ,向量属性类型为 "dense_vector"
参考Mapping
{
"mappings": {
"properties": {
"my_dense_vector": {
"type": "dense_vector",
"dims": 3
},
"status" : {
"type" : "keyword"
}
}
}
}
添加向量测试数据
PUT my-index-01/_doc/1
{
"my_dense_vector": [0.5, 10, 6],
"status" : "published"
}
向量数据计算
GET my-index-01/_search
{
"query": {
"script_score": {
"query" : {
"bool" : {
"filter" : {
"term" : {
"status" : "published"
}
}
}
},
"script": {
"source": "cosineSimilarity(params.query_vector, 'my_dense_vector') + 1.0",
"params": {
"query_vector": [4, 3.4, -0.2]
}
}
}
}
}
这里使用了余弦相似度计算 函数 cosineSimilarity()
这里支持的向量距离计算还有这些
发表评论
取消回复