Это связано с тем, как acts_as_solr создает запрос в parser_methods.rb
Есть несколько изменений, которые вам нужно будет сделать в parser_methods.rb
Изменить
models = "AND #{solr_configuration[:type_field]}:#self.name}"
до
models = "#{solr_configuration[:type_field]}:#self.name}"
Тогда не включайте строку построенных моделей в запрос.
query = "(#{query.gsub(/ *: */,"_t:")}) #{models}"
Измените это на
query = "(#{query.gsub(/ *: */,"_t:")})"
Теперь вам нужно будет принудительно включить часть поиска в запросе в SOLR.
Я сделал это с .....
query_options[:fq_model] = models
Перешел на стандарт.рб
Обязательно добавьте
:fq_model
в массив VALID_PARAMS.
Добавлено следующее
if @params[:fq_model]
hash["fq"] = @params[:fq_model]
end
Я добавил несколько дополнительных случаев, но они вам не нужны, если только вы не хотите сделать: fq опцией для find_by_solr.
После того, как все это было на месте, я могу теперь искать название модели и получить гораздо меньший набор результатов, который я ожидал.
Скорее всего, для работы multi_solr_search также потребуются обновления, поскольку кажется, что часть запроса type_t жестко запрограммирована в этом методе.
Понял большую часть этого, когда столкнулся с некоторыми проблемами, связанными с этим вопросом.
Подсветка в Solr 1.4 - requireFieldMatch