【问题标题】:BadRequestError: BadRequestError(400, 'x_content_parse_exception', '[1:34] [bool] failed to parse field [must]')BadRequestError: BadRequestError(400, \'x_content_parse_exception\', \'[1:34] [bool] 无法解析字段 [must]\')
【发布时间】:2022-11-24 07:14:33
【问题描述】:

我的查询显示错误 BadRequestError: BadRequestError(400, 'x_content_parse_exception', '[1:34] [bool] failed to parse field [must]')

我尝试删除 [] 但这也没有用。我觉得我搞砸了这个查询中的 KNN 部分。请帮忙!

helper_token = Tokenizer()
INPUT = input("Enter the Input Query ")
token_vector = helper_token.get_token(INPUT)

query ={
  
   "size":50,
   "_source": "Title", 
   "query":{
      "bool":{
         "must":[
            {
               "knn":{
                  "vectors":{
                     "vector":token_vector,
                     "k":20
                  }
               }
            }
         ]
      }
   }
}
es = Elasticsearch(timeout=600,hosts=os.getenv(ENDPOINT),cloud_id="PVT",http_auth=("elastic", PASSWORD))
res = es.search(index='posting',body=query)

title = [x['_source']  for x in res['hits']['hits']]
title

【问题讨论】:

    标签: elasticsearch elastic-stack


    【解决方案1】:

    如果您使用的是 8.4,则需要像这样指定 knn 查询(即 knnquery 的兄弟):

    query ={
      
       "size":50,
       "_source": "Title", 
       "knn":{
         "vectors":{
           "vector":token_vector,
           "k":20
         }
       }
    }
    

    【讨论】:

      【解决方案2】:

      修改此答案中提到的代码后,出现以下错误。 BadRequestError: BadRequestError(400, 'x_content_parse_exception', '[1:9] [knn] 未知字段 [vectors]')

      请帮我解决这个问题。

      【讨论】:

      • 如果您有自己的问题,请不要将其发布为该问题的答案。相反,发布您自己的新问题,但请务必先在网站上搜索类似问题,并在您自己的问题中说明以前的答案如何不能解决您当前的问题。问题越好,被回答的机会就越大。 How to Asktour 可以提供帮助。
      猜你喜欢
      • 2021-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 2012-03-06
      • 2012-07-20
      • 1970-01-01
      相关资源
      最近更新 更多