Как использовать функцию Solr MoreLikeThis с настройкой MultiCore? - PullRequest
3 голосов
/ 28 октября 2011

Итак, я настроил Solr с несколькими ядрами, используя функцию MultiCore, которая прекрасно работает:

http://localhost:8080/solr/core_one/select/?q=Book

Работает как положено и отображает результаты.

Теперь все, что я хочу сделать, это отправить тот же запрос в Solr с включенным MoreLikeThis:

http://localhost:8080/solr/core_one/select/?q=Book&mlt=true&mlt.fl=category

Я получаю HTTP-статус 500 - ноль java.lang.NullPointerException в org.apache.solr.schema.FieldType.storedToIndexed . Поле для mlt.fl существует. Самое смешное, что если я запрашиваю что-то, что не дает никаких результатов, Solr правильно возвращает пустой набор результатов.

Так это ошибка или я что-то упустил?

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

HTTP Status 500 - null java.lang.NullPointerException at
org.apache.solr.schema.FieldType.storedToIndexed(FieldType.java:360) at
org.apache.solr.handler.MoreLikeThisHandler$MoreLikeThisHelper.getMoreLikeThis(MoreLikeThisHandler.java:320) at
org.apache.solr.handler.component.MoreLikeThisComponent.getMoreLikeThese(MoreLikeThisComponent.java:82) at
org.apache.solr.handler.component.MoreLikeThisComponent.process(MoreLikeThisComponent.java:57) at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:194) at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) at
org.apache.solr.core.SolrCore.execute(SolrCore.java:1368) at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356) at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864) at
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) at
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665) at java.lang.Thread.run(Thread.java:679)

1 Ответ

5 голосов
/ 01 ноября 2011

MoreLikeЭто требует сохраненный уникальный ключ.

...