您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
搜索请求正文和ElasticSearch查询DSL
发布时间:2021-08-17 19:58:11编辑:雪饮阅读()
如果只是发送一个请求到上面的URL,我们会得到所有的电影信息。为了创建更有用的搜索请求,还需要向请求正文中提供查询。 请求正文是一个JSON对象,除了其它属性以外,它还要包含一个名称为“query”的属性,这就可使用ElasticSearch的查询DSL。
也就是像我们之前的这种:
GET _search
HEAD Content-Type:application/json
{
"query": {
"match_all": {}
}
}
说到这里再提一个题外话,像是之前put在sense中用HEAD的时候就会报错request body is required
如这样:
PUT http://localhost:9200/movies/movie/7
HEAD Content-Type:application/json
{
"title": "The Godfather",
"director": "Francis Ford Coppola",
"year": 1972
}
但是如果是post像是如:
POST http://localhost:9200/_search
HEAD Content-Type:application/json
{
"query": {
"match_all": {}
}
}
则不会报错request body is required
这里是怀疑_search或者是post本身和put的实现在sense上面的兼容上面的问题,这里暂时不得而知。而且这里如果给_search换位put,就会提示只支持post和get,所以暂时也无从测试,这个问题暂时只做下笔记在这里,或者随着后面学习的深入,这个问题或许可以得到解决。
回到正题,你可能想知道查询DSL是什么。它是ElasticSearch自己基于JSON的域特定语言,可以在其中表达查询和过滤器。想象ElasticSearch它像关系数据库的SQL。
关键字词:ElasticSearch,DSL