【问题标题】:bool malformed query, expected END_OBJECT but found FIELD_NAMEbool 格式错误的查询,应为 END_OBJECT,但找到 FIELD_NAME
【发布时间】:2018-02-10 02:07:33
【问题描述】:

我对弹性搜索查询有一些问题。当我使用查询代码时,它会反馈消息 [bool] 格式错误的查询,应为 [END_OBJECT] 但找到 [FIELD_NAME]。

{  
   "from":0,
   "size":15,
   "query":{  
      "bool":{  
         "must":[  
            {  
               "multi_match":{  
                  "query":"books",
                  "fields":[  
                     "title^20",
                     "lead^10",
                     "content"
                  ],
                  "type":"phrase"
               }
            }
         ]
      },
      "must":{  
         "match":{  
            "groupid":"599e4b49239cfa0a5a5f189d"
         }
      }
   },
   "sort":[  
      {  
         "times":{  
            "order":"desc"
         }
      }
   ]
}

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    您的第二个must 子句位置不正确,它必须在现有的bool/must 查询内。您需要将查询重写为:

    {  
       "from":0,
       "size":15,
       "query":{  
          "bool":{  
             "must":[  
                {  
                   "multi_match":{  
                      "query":"books",
                      "fields":[  
                         "title^20",
                         "lead^10",
                         "content"
                      ],
                      "type":"phrase"
                   }
                },
                {  
                   "match":{  
                      "groupid": "599e4b49239cfa0a5a5f189d"
                   }
                }
             ]
          }
       },
       "sort":[  
          {  
             "times":{  
                "order":"desc"
             }
          }
       ]
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-14
      • 1970-01-01
      • 2018-04-25
      • 2021-04-22
      • 2020-02-26
      • 1970-01-01
      • 2018-01-30
      • 2022-10-25
      • 2017-12-01
      相关资源
      最近更新 更多