sunspot solr неопределенный тип поля
У меня проблема с моим пятном и солнечным пятном. В разработке это работало как чудо, но в производственном процессе я получаю следующую ошибку из моего журнала производства рельсов:
RSolr:: RequestError (Ответ Solr: неопределенный тип поля): app/controllers/search_controller.rb:7: в `index'
Я думаю, это как-то связано с schema.xml. Но я совсем новичок в решении. Так кто-нибудь может мне помочь?
ХОРОШО:
контроллер
def index
unless params[:q].blank?
@search = Question.search do
fulltext params[:q]
end
@results = @search.results
else
@results = nil
end
@searchterm = params[:q]
конец
модель (вопрос)
...
searchable do
text :title
text :content
end
4 ответа
Похоже, что ваш производственный экземпляр Solr не использует Sunspot schema.xml
,
type
поле должно быть определено в стандарте Sunspot schema.xml
и используется для индексации имени модели объекта для последующего использования при фильтрации ваших поисков. Видя сообщение об ошибке, говорящее, что type
не определено, это то, что для меня означает, что вы используете schema.xml
кроме солнечного пятна.
Возможно, вы используете какой-то другой пример или набор конфигураций по умолчанию из метода, который вы использовали для установки Solr на вашем сервере. Если вы можете, пожалуйста, уточните, как вы настроили свой рабочий сервер Solr.
Для Solr 4.7 скопируйте schema.xml и solrconfig.xml из your_app / solr / conf в /opt/solr/solr/collection1 (или каким-либо другим путем, по которому вы используете solr), и, если он все еще не работает, убедитесь, что ваш config / sunspot.yml это что-то вроде:
production: solr: hostname: localhost порт: 8983 log_level: WARNING путь: /solr/collection1 # read_timeout: 2 # open_timeout: 0.5 Рекомендуется создать другое ядро (my_core) из веб-интерфейса solr, скопировать schema.xml и solrconfig. xml к этой папке и укажите путь к / solr / my_core
Для меня это было в аддоне Weokolr аддона Heroku, для конфигурации по умолчанию было выбрано черное освещение, и мне пришлось изменить его на солнечное пятно.
Убедитесь, что в вашем schema.xml установлено значение типа поля required="true", иначе переиндексация не включит поле "тип" в ваши проиндексированные данные.
<field name="type" stored="true" type="string" multiValued="true" indexed="true" required="true" />