Я новичок в Solr / Sunspot, и я уверен, что сделал что-то не так.
У меня sunspot_rails
1.2.1 работает с rails
2.3.4 (пробовал другие версии, но они не будут работать, и мы надеемся не обновлять рельсы сейчас)
Reindex работал, и я получаю результаты, но поиск занимает слишком много времени. Около 25 секунд, чтобы выполнить полнотекстовый поиск по двум полям с почти 78 000 документов.
У меня есть это:
class Abstract < ActiveRecord::Base
searchable do
text :original_title, :headline
end
end
Искать так:
Abstract.search do
fulltext 'test'
paginate :page => 1, :per_page => 30
end
Это единственная подсказка, которую я должен продолжить:
Выбор Solr (25275,2 мс) {: fq => ["type: Abstract"],: start => 0,: defType => "dismax",: q => "+ (test)",: fl = > "* Score",: rows>> 30,: qf => "original_title_text headline_text"}
Это не однократный первый поиск, это каждый раз.
Если я добавлю больше критериев (например, updated_at между двумя датами), это увеличится примерно до 8 минут!
Меня попросили отметить, что это в среде разработки.
Обновление
Проблема не в Solr. Если я посещу это:
http://localhost:8982/solr/select?indent=on&version=2.2&q=+%2B(test)&fq=type:Abstract&defType=dismax&start=0&rows=10&fl=*%2Cscore&qt=standard&wt=standard&explainOther=&hl.fl=&qf=original_title_text+headline_text
выполняет тот же запрос и занимает минимальное количество времени (что-то около 4 миллисекунд!)
Так почему же запрос через Rails занимает так много времени? это либо солнечное пятно, либо rsolr, либо, как предположил Джон, возможно, он запускает новый экземпляр Solr, но я не думаю, что это так.
Должен ли я попробовать переключиться на acts_as_solr? Я думал, что это немного устарело.
Я нахожусь на sunspot 1.2.1 и rsolr 0.12.1 - будут ли здесь помогать более новые версии?
Интересная новая информация
Переход на Rails 2.3.14 сократил время запроса до 18 секунд!
РЕЗУЛЬТАТ!
Я попробовал sunspot 1.3.0 с RSolr 1.0.6, и, наконец, я получил быстрый ответ, который искал! Это потребовало от меня перехода на стабильную версию рельсов 2.3. Жаль, мы не хотели обновлять версию rails, но, похоже, это было необходимо.