52.验证搜索是否合法

主要知识点

  • _validate

   

   

假设写了一个很长的搜索语句,在执行这条语句之前应先验证搜索是否合法,是否有错误。

语法:

GET /index/type/_validate/query?explain

{搜索语句体}

示例

GET /company/employee/_validate/query?explain

{

"query":{

"math_all":{}

}

}

执行结果:

{

"valid": false,

"error": "org.elasticsearch.common.ParsingException: no [query] registered for [math_all]"

}

这就说明这条语句不合法,要重新修改。一般用在那种特别复杂庞大的搜索下,比如你一下子写了上百行的搜索,这个时候可以先用validate api先去验证一下,无错误后再到es中去执行搜索。

原文地址:https://www.cnblogs.com/liuqianli/p/8471754.html