世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
问 :dense_vector有什么特点?
答 :
问 :dense_vector如何使用?
答 :
# dense_vector
PUT /dense_vector_test
{
"mappings" : {
"properties" : {
"my_dense_vector" : {
"type" : "dense_vector",
"dims" : 3
},
"status" : {"type" : "integer"}
}
}
}
# 索引
POST /dense_vector_test/_doc
{
"my_dense_vector" : [0.5, 3, 8],
"status" : 1
}
# 索引
POST /dense_vector_test/_doc
{
"my_dense_vector" : [0.5, 4, 9],
"status" : 1
}
# 索引
POST /dense_vector_test/_doc
{
"my_dense_vector" : [1.5, 5, 8],
"status" : 1
}
# 搜索
GET /dense_vector_test/_search
{
"query" : {
"script_score" : {
"query" : {
"bool" : {
"filter" : {
"term" : {
"status" : 1
}
}
}
},
"script" : {
"source" : "cosineSimilarity(params.query_vector, 'my_dense_vector') + 1.0",
"params" : {
"query_vector" : [0.7, 3, 18]
}
}
}
}
}
# 结果
{
"took" : 6,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 3,
"relation" : "eq"
},
"max_score" : 1.9811572,
"hits" : [
{
"_index" : "dense_vector_test",
"_type" : "_doc",
"_id" : "RmcIZ3gBVbS9eSDZzO7Y",
"_score" : 1.9811572,
"_source" : {
"my_dense_vector" : [
0.5,
3,
8
],
"status" : 1
}
},
{
"_index" : "dense_vector_test",
"_type" : "_doc",
"_id" : "R2cIZ3gBVbS9eSDZ1u79",
"_score" : 1.9681346,
"_source" : {
"my_dense_vector" : [
0.5,
4,
9
],
"status" : 1
}
},
{
"_index" : "dense_vector_test",
"_type" : "_doc",
"_id" : "SGcIZ3gBVbS9eSDZ3-5z",
"_score" : 1.9174826,
"_source" : {
"my_dense_vector" : [
1.5,
5,
8
],
"status" : 1
}
}
]
}
}