0

だから、私はファンドレイザーと呼ばれるクラスを持っています:

class Fundraiser    
  def search!
    search = Tire::Search::Search.new('fundraisers')
    search.query { all }
    search.filter :range, {id: {gt: 1}}
    search.results
    binding.pry
  end
end

こじ開けて「検索」変数を表示すると、結果が得られません

[1] pry()> search
=> #<Tire::Search::Search:0x007fb3d9d13938
 @filters=[{:range=>{:id=>{:gt=>1}}}],
 @indices=["fundraisers"],
 @options={},
 @path="/fundraisers/_search",
 @types=[]>

IDが「1」より大きい募金活動が2つありますが、

[2] pry()> Fundraiser.all.map(&:id)
=> [1, 2, 3]

私は何を間違っていますか?私はこれを私が考えることができるあらゆる方法で書き直しました。また、「created_at」がタイムスタンプである「created_at」などに同様のフィルターを適用すると、結果が得られません。

アップデート:

query検索呼び出しのand部分を追加しましたが、resultsまだ結果が得られません...

=> #<Tire::Results::Collection:0x007f92f3302b58
 @facets=nil,
 @max_score=0.0,
 @options={},
 @response=
  {"took"=>0,
   "timed_out"=>false,
   "_shards"=>{"total"=>5, "successful"=>5, "failed"=>0},
   "hits"=>{"total"=>0, "max_score"=>nil, "hits"=>[]}},
 @time=0,
 @total=0,
 @wrapper=Tire::Results::Item>
4

1 に答える 1

0

検索を作成しましたが、実行していません (呼び出しによる.results)。

さらに、クエリを定義する必要があると確信しています。

search.query { all }

最上位にフィルターを追加しても機能しますが、フィルター処理されたクエリの使用を検討することもできます。

于 2013-06-05T19:08:45.093 に答える