0

На фото модели Я следующее простое правило:Rails 3 - Solr не Ищу пунктов

searchable do 
    string :note 
    end 

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

ГУМЗ Request (4.8ms) [путь = # = {параметров данных : FQ = тип% 3A Статья & д = searched_string & фл =% 2A + счет & Qf = заголовок + содержание & defType = dismax & начать = 0 & строк = 30, метод: Post, PARAMS: {: вес = >: ruby}, запрос: wt = ruby, заголовки: {" Content-Type "=>" применение/х-WWW-форм-urlencoded; кодировка = UTF-8" }, путь: выберите, URI: http://localhost:8982/solr/select?wt=ruby, open_timeout:, read_timeout:}]

и это

ГУМЗ Запрос (4.4ms) [путь = # параметры = {данные: FQ = тип% 3A фотография & д = asgasg & фл =% 2A + счет & defType = dismax & начать = 0 & строк = 30, метод: Post, PARAMS: {: вес =>: ruby}, запрос: wt = ruby, head ers: {"Content-Type" => "application/x-www-form-urlencoded; кодировка = UTF-8" }, путь: выберите, Ури: 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 Безразлично «поиск т в Фото модели ... все должно быть указано и установить, но до сих пор не знаю, где проблема ...

ответ

1

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

searchable do 
    text :note 
end 

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

UPDATE

По sunspot readme:.

«текстовые поля будут полнотекстового поиска Другие поля (например,, Целое число и строка) может быть использован для объема запросов»

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

Успехов

+0

'note' is' varchar (255) ', вместо использования' fulltext' я пытался использовать там 'keywords', но все равно ничего. – user984621

+0

Спасибо за помощь, Саймон. Я разместил решение в отдельном сообщении. Ну ... Я также попытался использовать строку с 'with' clausule, но это меня не сработало ... Я пытаюсь выполнить поиск по столбцу text/string, и он работает без настройки' with' part. Похоже, что всегда необходимо переиндексировать SOLR, если были внесены некоторые изменения в 'searchable' часть в модели ... – user984621

0

рабочий раствор моей проблемы:.. 1. остановка сервера рельсы 2. рейк солнечных пятен: переиндексации 3. запустить сервер рельсы

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