我目前正在尝试构建一个搜索,其中knn搜索将在一个terms查询的结果集内使用。下面是我的测试查询,但我遇到了一个错误“格式错误的查询,预期[END_OBLOG],但发现[FEILD_NAME]”
GET my-index2/_search
{
"query":{
"bool":{
"should":[
{"terms":{"t":["hello"]}}
]
},
"knn": {
"my_vector2": {
"vector": [2, 3, 5, 6],
"k": 2
}
}
},
"_source":["t"]
}
字符串
有办法做到这一点吗?
2条答案
按热度按时间r8uurelv1#
从elasticsearch 8.2开始,您可以直接使用过滤器与_knn_search:
字符串
示例来自https://www.elastic.co/guide/en/elasticsearch/reference/8.2/knn-search-api.html。
xvw2m8pv2#
我认为你的查询格式不正确,应该像下面这样,即
knn
查询应该在bool/filter
数组中,这样它就可以在terms
查询所选择的同一组数据上工作。字符串
PS:从8.4开始,这只对_search端点有效