[英]Sorting by number of nested elements with ElasticSearch and Tire
给定以下在称为Post的模型上的映射,是否有可能构建一个查询,以返回在特定时间范围内(例如,过去7天)按投票数排序的帖子?
mapping do
indexes :id, type: 'integer'
indexes :user_id, type: 'integer'
indexes :name, boost: 10
indexes :body # analyzer: 'snowball'
indexes :created_at, type: 'date'
indexes :vote_count, type: 'integer'
indexes :topic_ids
indexes :topics do
indexes :id, type: 'integer'
indexes :name, type: 'string'
end
indexes :votes do
indexes :user_id, type: 'integer'
indexes :created_at, type: 'date'
end
end
我正在使用Tire in Rails 3.2.13。 我有一个邮政模型和一个投票模型。 帖子具有很多票,而投票属于帖子。
是的,您可以按vote_count
数进行排序,也可以使用custom_score
查询进行细粒度的相关性计算。
对于前者,类似:
require 'tire'
s = Tire.search do
query do
filtered do
query { all }
filter :range, 'created_at' => { from: '-7d' }
end
end
sort do
by :vote_count
end
end
puts s.to_curl
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.