云搜索服务 CSS-使用向量索引搜索数据:Painless语法扩展查询

时间:2024-08-28 10:38:41

Painless语法扩展查询

CSS 扩展实现了多种向量距离计算函数,可在自定义的painless脚本中直接使用,用以构建灵活的重打分公式。

示例如下:

POST my_index/_search
{
  "size": 10,
  "query": {
    "script_score": {
      "query": {
        "match_all": {}
      },
      "script": {
        "source": "1 / (1 + euclidean(params.vector, doc[params.field]))",
        "params": {
          "field": "my_vector",
          "vector": [1, 2]
        }
      }
    }
  }
}
表5 支持的距离计算函数

函数签名

说明

euclidean(Float[], DocValues)

欧式距离函数。

cosine(Float[], DocValues)

余弦相似度函数。

innerproduct(Float[], DocValues)

内积函数。

hamming(String, DocValues)

汉明距离函数。只支持"dim_type"为"binary"的向量字段,输入的查询向量需要为Base64编码字符串格式。

support.huaweicloud.com/usermanual-css/css_01_0123.html