弹性搜索和轮胎

时间:2013-10-06 02:43:38

标签: ruby-on-rails elasticsearch tire

您好我正在尝试在我的项目中使用轮胎和弹性搜索。

我能够为模型编制索引并查询每个模型,但我对连接表有困难。

我的模特

class Item < ActiveRecord::Base
attr_accessible :category_id, :description, :name, :rating
belongs_to :category
has_and_belongs_to_many :posts
include Tire::Model::Search
include Tire::Model::Callbacks
after_save do
  update_index
end

tire.mapping do
  indexes :name,  :analyzer => 'snowball', :boost => 100
  indexes :posts
end
end



class Post < ActiveRecord::Base
include Tire::Model::Search
include Tire::Model::Callbacks
has_and_belongs_to_many :tags
has_and_belongs_to_many :items


attr_accessible :posted_at, :text, :thread_id, :username

tire.mapping do
  indexes :id, type: 'integer'
  indexes :text, :analyzer => 'snowball', :boost => 100
  indexes :thread_id, type: 'integer'
  indexes :posted_at, type: 'date'
end
end

如您所见,我在项目和帖子之间有一个联接表

如果我有一个项目名称,我如何使用弹性搜索或Item.search(名称).posts搜索Post.search(属于此项目的那些帖子)?

1 个答案:

答案 0 :(得分:1)

你可以做的最好的事情就是从这里开始:

http://stackoverflow.com/questions/11692560/elasticsearch-tire-and-nested-queries-associations-with-activerecord/11711477#11711477

然后观看http://railscasts.com/episodes/307-elasticsearch-part-2

然后从上到下浏览轮胎http://karmi.github.io/retire/

我正在解决类似问题......会让你知道我是如何解决问题的。)