5

我在我的应用程序中安装 Solr 取得了一些成功。我已经设法搜索了两个模型,但现在正尝试使用“with”子句微调我的搜索。

我的事件模型有:

class Event < ActiveRecord::Base
  searchable do
   text :headline, :info
   time :event_date
  end
end

我的场地模型有:

class Venue < ActiveRecord::Base
  searchable do
   text :name, :address_1, :address_2, :town, :postcode
  end
end

然后我有一个搜索控制器,我之前设法根据我的params[:search]. 我现在正在尝试返回即将举行的活动和场地,但由于场地中没有“event_date”,我现在只能返回这些活动。简而言之,我如何with(:event_date)仅适用于 Event 模型?

class SearchController < ApplicationController
  def search
    @search = Sunspot.search [Event, Venue] do
      fulltext params[:search]
      with(:event_date).greater_than(Time.zone.now)
    end
    @results = @search.results
    respond_to do |format|
      format.json { render json: @results }
    end
  end  
end  
4

1 回答 1

1

您可以做的一件事是将此字段添加到其他“可搜索”字段,如下所示:

class Venue < ActiveRecord::Base
  searchable do
   text :name, :address_1, :address_2, :town, :postcode
   time :event_date { Time.zone.now }
  end
end

你可以在 { #here } 中放任何你想要的东西

希望能帮助到你

于 2013-10-11T21:12:35.870 回答