солнечное пятно solr неопределенный тип поля - PullRequest
2 голосов
/ 18 августа 2011

У меня проблема с солнечным пятном и сольром. В разработке это работало как чудо, но в процессе производства я получаю следующую ошибку из журнала производства моих рельсов:

RSolr :: RequestError (Ответ Solr: неопределенный тип поля): app / controllers / search_controller.rb: 7: в `index '

Я думаю, это как-то связано с schema.xml. Но я совсем новичок в решении. Так кто-нибудь может мне помочь?

OK:
Контроллер

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 ]

6 голосов
/ 19 августа 2011

Похоже, ваш производственный экземпляр Solr не использует Sunspot schema.xml.

Поле type должно быть определено в стандарте Sunspot schema.xml и используется для индексации имени модели объекта для последующего использования при фильтрации результатов поиска. Когда я вижу сообщение об ошибке, в котором говорится, что type не определено, это означает, что вы используете schema.xml, отличное от Sunspot.

Возможно, вы используете какой-то другой пример или набор конфигураций по умолчанию из метода, который вы использовали для установки Solr на вашем сервере. Если вы можете, пожалуйста, уточните, как вы настроили свой рабочий сервер Solr.

3 голосов
/ 05 июля 2014

Для Solr 4.7, скопируйте schema.xml и solrconfig.xml из your_app / solr / conf в / opt / solr / solr / collection1 (или где бы вы ни находились по пути solr) и, если все еще не работает, убедитесь, что ваш config / sunspot.yml это что-то вроде:

production:
  solr:
    hostname: localhost
    port: 8983
    log_level: WARNING
    path: /solr/collection1
    # read_timeout: 2
    # open_timeout: 0.5

Рекомендуется создать другое ядро ​​(my_core) из веб-интерфейса solr, скопировать schema.xml и solrconfig.xml в эту папку и указать путь к / solr / my_core

1 голос
/ 30 марта 2017

Для меня это была панель инструментов Heroku addon Websolr, для конфигурации по умолчанию было выбрано значение blacklight, и мне пришлось изменить ее на sunspot.

1 голос
/ 09 декабря 2013

Убедитесь, что для типа поля установлено значение required = "true" в вашем schema.xml, иначе переиндексация не будет включать поле "тип" в ваши проиндексированные данные.

<field name="type" stored="true" type="string" multiValued="true" indexed="true" required="true" />
...