我目前正在尝试构建一个搜索,其中 knn 搜索将在术语查询的结果集中使用。以下是我的测试查询,但遇到错误“格式错误的查询,预期为 [END_OBJECT],但找到了 [FEILD_NAME]”
GET my-index2/_search
{
"query":{
"bool":{
"should":[
{"terms":{"t":["hello"]}}
]
},
"knn": {
"my_vector2": {
"vector": [2, 3, 5, 6],
"k": 2
}
}
},
"_source":["t"]
}
有什么办法可以实现这一点吗?
最佳答案
从elasticsearch 8.2开始,您可以直接将过滤器与_knn_search一起使用:
GET my-index/_knn_search
{
"knn": {
"field": "image_vector",
"query_vector": [0.3, 0.1, 1.2],
"k": 5,
"num_candidates": 50
},
"filter": {
"term": {
"file_type": "svg"
}
},
"_source": ["name"]
}
示例来自https://www.elastic.co/guide/en/elasticsearch/reference/8.2/knn-search-api.html .
关于Elasticsearch 使用关键字术语进行 KNN 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63022045/