Rails 3 - Solr не ищет предметы

В модели Photo у меня есть следующее простое правило:

  searchable do
    string :note
  end

и я пытаюсь найти строку с Solr (одновременно в двух таблицах). Это вывод запроса Solr в терминале (первый для статей, второй для фотографий):

Запрос SOLR (4,8 мс) [путь =# параметры ={данные: fq= тип%3A Статья &q= искомая_строка &fl=%2A+ оценка &qf= заголовок + контент &defType=dismax&start=0&row = 30, метод: post, params: {:wt=>:ruby}, запрос: wt=ruby, заголовки: {"Content-Type"=>"application/x-www-form-urlencoded; charset=UTF-8"}, путь: выберите, uri: http://localhost:8982/solr/select?wt=ruby, open_timeout:, read_timeout:}]

и это

Запрос SOLR (4,4 мс) [путь =# параметры ={данные: fq= тип%3A Фото &q=asgasg&fl=%2A+ оценка &defType=dismax&start=0&row = 30, метод: post, params: {:wt=>:ruby}, query: wt=ruby, headers: {"Content-Type"=>"application/x-www-form-urlencoded; charset=UTF-8"}, путь: выберите, uri: http://localhost:8982/solr/select?wt=ruby, open_timeout:, read_timeout:}]

контроллер:

@articles = Article.search do
  fulltext params[:search]
end
@photos = Photo.search do
  fulltext params[:search]
end
## => searching ##
puts @articles.results #work fine
puts @photos.results #always 0

Я совершенно не знаю, почему SOLR не ищет в модели Photo... все должно быть указано и настроено, но все еще не знаю, в чем проблема...

2 ответа

Решение

Я думаю, что в модели фото вы должны определить :note как text тип (не string) чтобы запустить на нем полнотекстовый поиск:

searchable do
  text :note
end

Кроме того, вы установили @articles а также @photosно проверяю @users а также @photos в вашем вопросе.

ОБНОВИТЬ

Согласно солнечному пятну readme:

"текстовые поля будут доступны для полнотекстового поиска. Другие поля (например, целое и строковое) могут использоваться для определения объема запросов"

То есть бежать fulltext или же keywords на этом поле, он должен быть объявлен как text в поисковом блоке. У вас это как string, который можно использовать только для точного соответствия with(),

Удачи.

Рабочее решение моей проблемы: 1. остановить сервер rails 2. rake sunspot:reindex 3. запустить сервер rails

Если все изменилось в searchable блок, затем необходимо переиндексировать данные.

Другие вопросы по тегам