其中body为一个hash,可以使用 json builder来构建或者诸如其他用于构建hash的方法 构建hash可以实现比简单搜索更加强大的搜索能力,而且构建hash的格式可以完全参照elasticsearch 的http api格式进行对应修改即可 比如在官方文档中,查询姓名为smith且年龄大于30的雇员的api是这样的 GET /megacorp/employee/_search { "query" : { "bool": { "must": { "match" : { "last_name" : "smith" } }, "filter": { "range" : { "age" : { "gt" : 30 } } } } } } 那么我们使用json builder在ruby中实现的过程几乎一模一样 query = Jbuilder.encode do |json| json.query do json.bool do json.must do json.match do json.last_name "smith" end end json.filter do json.range do json.age do json.gt 30 end end end end end end client.search index: 'megacorp', body: query
通过elasticsearch-api实现更复杂的查询
最新推荐文章于 2024-08-30 16:23:11 发布