码迷,mamicode.com
首页 > 其他好文 > 详细

使用query ds进行搜索(search with query dsl)

时间:2014-05-09 03:47:58      阅读:313      评论:0      收藏:0      [点我收藏+]

标签:class   int   http   get   c   string   

使用Query-string这种检索方式是方便于命令行的检索,但是他受到了诸多限制(see Search Lite)。ES还提供了一个丰富的,灵活的搜索方式:Query DSL。Query DSL允许用户构建更复杂而健壮的搜索条件。

DSL(Domain Specific Language)使用JSON作为请求体。使用DSL重新构建上一节的搜索条件如下:

GET /megacorp/employee/_search
{
   
"query":{
       
"match":{
           
"last_name":"smith"
       
}
   
}
}
curl -XGET ‘http://localhost:9200/megacorp/employee/_search?pretty‘ -d ‘{"query" : {"match" : {"last_name" : "smith"}}}‘

这个搜素将会和上一节返回相同的结果(Q1),可以发现这些搜索语句的结构是发生了变化的,这里不再使用query string作为参数了,而是使用JSON请求体作为替代,同时使用match这个关键字进行搜索(match是ES中集中查询方式中的一个)。

Q1:

使用curl -XGET ‘http://localhost:9200/megacorp/employee/_search?pretty‘ -d ‘{"query" : {"match" : {"last_name" : "smith"}}}‘进行查询返回的结果的确是和query string一样,如果是在浏览器中http://localhost:9200/megacorp/employee/_search?pretty&{"query" : {"match" : {"last_name" : "smith"}}}返回的结果就是三条记录,这个是有问题的,如果在HEAD中使用GET返回的是三个记录,使用POST返回的是两条记录。这里是有问题的。暂时无解。

 

使用query ds进行搜索(search with query dsl),布布扣,bubuko.com

使用query ds进行搜索(search with query dsl)

标签:class   int   http   get   c   string   

原文地址:http://www.cnblogs.com/blog1350995917/p/3716360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!