2014-01-20 1 views
1

Я использую Sunspot для поиска. Вот мой файл контроллера.Поиск с использованием Solr 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' 

Но тогда он отображает все Продукты 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> 

Пожалуйста, помогите мне с этим.

конец

ответ

0

Попробуйте это, я использовал этот кусок кода долгое время назад. Он должен работать

 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 

В модели `ключевые слова ссылки,: поля => [: user_name,: food_habits,: возраст]

метод ключевых слов по умолчанию включает в себя все текстовые поля, если иное не указано в опции `

+0

Я ценю вашу помощь. Но когда я добавил свой фрагмент кода, он говорит о неопределенной ссылке на метод. – Raghuveer

0

Обратите внимание, что вы передаете строку '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 
+0

Пробовал, но все же он не работает. – Raghuveer

+0

Есть ли что-то другое? Вы уверены, что ваши модели проиндексированы правильно? – fivedigit

+0

Он отображает все в базе данных, когда я не даю никаких данных. Но когда я ввожу ключевое слово, он ничего не выводит. И когда я переиндексирую свою базу данных, используя: rake sunspot: reindex. Он отображает это: [############################################## #################################### [8/8] [100.00%] [00:00] [ 00:00] [89,15/с]. Правильно ли он переиндексирован? – Raghuveer

 Смежные вопросы

  • Нет связанных вопросов^_^