Исключение Solr: неопределенная ошибка поля с переиндексацией

Надеясь, что ты сможешь мне помочь. У меня проблема с приложением, которое я только начал поддерживать. Приложение использует SOLR для индексации и должно заполнять два ядра данными из базы данных.

Я продолжаю получать следующую ошибку при переиндексации:

22 августа 2013 г. 10:09:49 org.apache.solr.common.SolrException log

SEVERE: org.apache.solr.common.SolrException: неопределенное поле: "editor_id"

    at org.apache.solr.schema.IndexSchema.getField(IndexSchema.java:965)

[... Трассировки стека...]

    at java.lang.Thread.run(Thread.java:679)

Мой schema.xml для этого ядра:

<solrQueryParser defaultOperator="AND" />

<fields>

    <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
    <field name="name" type="text_nl" indexed="true" stored="false"/>
    <field name="platform" type="string" indexed="true" stored="false" multiValued="false"/>
    <field name="date" type="date" indexed="true" stored="false" multiValued="false"/>
    <field name="content" type="text_nl" indexed="true" stored="false"/>

    <field name="division_id" type="long" indexed="true" stored="false" multiValued="false"/>
    <field name="division" type="text_nl" indexed="true" stored="false" multiValued="false"/>

    <field name="subdivision_id" type="long" indexed="true" stored="false" multiValued="false"/>
    <field name="subdivision" type="text_nl" indexed="true" stored="false" multiValued="false"/>

    <field name="editor_id" type="long" indexed="true" stored="false" multiValued="false"/>
    <field name="editor" type="text_nl" indexed="true" stored="false" multiValued="false"/>

    <field name="status" type="text_nl" indexed="true" stored="false" multiValued="false"/>
    <field name="status_id" type="long" indexed="true" stored="false" multiValued="false"/>

    <field name="lines" type="text_nl" indexed="true" stored="false" multiValued="true"/>

    <field name="text" type="text_nl" indexed="true" stored="false" multiValued="true"/>

    <field name="_version_" type="long" indexed="true" stored="true"/>

    <field name="suggest_nl" type="text_nl_suggest" indexed="true" stored="true" multiValued="true"/>
    <copyField source="*" dest="suggest_nl"/>

</fields>

<uniqueKey>id</uniqueKey>

Как вы можете видеть, editor_id существует в схеме. В базе данных мы получаем данные из таблицы, имя которой было переименовано в editor_user_id. Когда я переименовываю правило schema.xml для editor_id в editor_user_id, оно все равно возвращается с вышеуказанной ошибкой, как будто schema.xml не имеет значения.

Я что-то здесь упускаю, как обновить схему, чтобы она соответствовала таблице базы данных?

Будем очень благодарны за любые предложения о том, как избавиться от этой ошибки, так как я являюсь новичком, когда дело доходит до установок SOLR/LUCENE/TOMCAT.

Благодарю.

Редактировать:

Вот полная трассировка стека:

22 августа 2013 г. 11:47:52 Журнал org.apache.solr.common.SolrException SEVERE: org.apache.solr.common.SolrException: неопределенное поле: "editor_id" в org.apache.solr.schema.IndexSchema.getField(IndexSchema.java:965) в org.apache.solr.schema.IndexSchema.getCopyFieldsList(IndexSchema.java:1077) в org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:274) в org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:73) по адресу org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:201) по адресу org.apache.solr.updatePro Java:69) в org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51) в org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProapor)..solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:591) в org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:350) по адресу org.apache.solr.update.processor.LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:100) по адресу org.apache.solr.Xj.aderMateOll: 246) в org.apache.solr.handler.loader.XMLLoader.load (XMLLoader.java:173) в org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92) в org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74) в org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135) в org.apache.solr.core.SolrCore.exte) в org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:448) в org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:269) в org.apil.Cache.internalDoFilter(ApplicationFilterChain.java:235) в org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) по адресу org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) по адресу org.apache.catalina.core.StandardContextValve.invoke(StandardContextValache.catg: atg: orina.catg: at..core.StandardHostValve.invoke(StandardHostValve.java:127) в org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) в org.apache.catalina.core.StandardEngineValve.jj) в org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) в org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) в org.apache.coyote.http11H Http11ConnectionHandler.process(Http11Protocol.java:602) в org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) в java.lang.Thread.run(Thread.java:679)

2 ответа

Вам необходимо перезапустить свой сервер solr(Tomcat/jetty), чтобы отразить любые изменения в файлах конфигурации solr (schema.xml, solrconfig.xml).

У вас может быть несколько файлов schema.xml в разных папках.

Тот, который вы фактически используете, должен быть указан в вашем solrconfig.xml или solr.xml многими различными способами. Посмотрите, есть ли у вас больше копий schema.xml, и, в конце концов, взгляните на эти другие файлы, чтобы проверить, нет ли на них ссылки.

Также проверьте, есть ли у вас основная подчиненная среда, и в этом случае вам, возможно, придется вручную скопировать ваш файл на главный и подчиненный серверы и / или указать, что он должен быть скопирован во время репликации в файле solrconfig.xml.

Другие вопросы по тегам