Elasticsearch 使用关键字术语进行 KNN 搜索

标签 elasticsearch

我目前正在尝试构建一个搜索,其中 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/

相关文章:

elasticsearch - Timelion多次 split

elasticsearch - 处理 ElasticSearch 中的点

elasticsearch - elasticsearch_dsl TypeError:index()缺少1个必需的位置参数: 'doc_type'

apache-spark - throttle 从Apache Spark写入ES

elasticsearch - 为什么这个Elasticsearch查询不完全匹配字符串?

datetime - Kibana 4 DateTime 显示本地值

python - 弹性查询失败,并显示以下错误异常:TransportError(400,u'search_phase_execution_exception',u'无法解析查询[*/abc *]')

elasticsearch - Elasticsearch 2.0 GreaterOrEquals NEST 2.0

elasticsearch - Elasticsearch:JSON获取特定术语的频率

mysql - 将Mysql查询转换为Elastic Search