Elasticsearch(ES)集群可以存储多个向量字段,例如 titleVector
和 contentVector
,并支持同时对它们进行检索。以下是具体实现方法及注意事项:
1. 定义索引映射
确保在索引映射中正确声明两个 dense_vector
字段,假设每个字段的维度为768:
PUT /my_index { "mappings": { "properties": { "titleVector": { "type": "dense_vector", "dims": 768 }, "contentVector": { "type": "dense_vector", "dims": 768 } } } }
2. 同时检索两个向量字段
使用 script_score
查询结合两个向量的相似度计算。例如,将余弦相似度得分加权求和:
GET /my_index/_search { "query": { "script_score": { "query": {"match_all": {}}, "script": { "source": """ (cosineSimilarity(params.queryTitleVector, 'titleVector') * params.t