簡體   English   中英

使用Solr Sunspot進行搜索

[英]Searching using Solr Sunspot

我將Sunspot用於搜索功能。 這是我的控制器文件。

     def show
        search = Clothes.search do
        fulltext 'params[:name]'
        paginate :page => 1, :per_page => 30

       end
     @results = search.results
     end

我的模型中有帶有名稱,maxprice,minprice等的產品,僅當插入時搜索功能才起作用

     fulltext 'Nike'

但隨后它將顯示所有耐克產品的任何搜索查詢。 你們能幫我嗎?

這是我的模特

    class Clothes < ActiveRecord::Base

       searchable do
       text :name, :default_boost => 1
       integer :discount
       float :maxprice
       float :minprice
       string :image
     end

還有我的視圖文件。

         <h1>Results for your search.</h1>
         <%= render "shirts/new"%>


      <table><tr><th>Name</th><th>Max. Price</th><th>Min. Price</th><th>Discount</th><th>Image</th></tr>

    <% for prod in @results %>
    <tr><td><%= prod.name %></td><td><%= prod.maxprice%></td><td><%= prod.minprice%></td><td><%= prod.discount%></td><td> <%= image_tag(prod.image, :alt => "logo", :size => "75x75") %> </td></tr>

          <% end %>
          </table>

這個你能幫我嗎。

結束

試試這個,我很久以前就使用這段代碼。 它應該工作

      search = Sunspot.search(Food) do
       keywords reference if reference.present?
       with(:vendor_id).any_of(vendor_ids) if vendor_ids.present?
       order_by :created_at, :desc
       paginate(:page => page, :per_page => per_page)
      end

在模型中,`關鍵字參考::fields => [:user_name,:food_habits,:age]

默認情況下,關鍵字方法包括所有文本字段,除非該選項另有指定。

請注意,您將字符串'params[:name]'傳遞給fulltext方法,而不是params[:name]本身的值。 更改為此:

def show
  search = Clothes.search do
    fulltext params[:name]

    paginate :page => 1, :per_page => 30
  end
  @results = search.results
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM