2012-07-03 19 views
12

Niedawno zaktualizowałem moją instancję Solr z 1,4 do 3.6. Jednak wydaje mi się, że w moich dziennikach pojawia się komunikat "nieokreślony tekst pola" za każdym razem, gdy aktualizuję indeks.Solr "Niezdefiniowany tekst pola"

Mam pola tekstowe w moim schemacie (który był ważny od wersji 1.4), ale nigdy wcześniej nie musiałem być zadeklarowany jako typ pola. Czy zmieniło się to w 3.6?

Mój schemat jest tutaj >>http://pastebin.com/KrCVab0U

SEVERE: org.apache.solr.common.SolrException: undefined field text 
     at org.apache.solr.schema.IndexSchema.getDynamicFieldType(IndexSchema.java:1330) 
     at org.apache.solr.schema.IndexSchema$SolrQueryAnalyzer.getAnalyzer(IndexSchema.java:408) 
     at org.apache.solr.schema.IndexSchema$SolrIndexAnalyzer.reusableTokenStream(IndexSchema.java:383) 
     at org.apache.lucene.queryParser.QueryParser.getFieldQuery(QueryParser.java:574) 
     at org.apache.solr.search.SolrQueryParser.getFieldQuery(SolrQueryParser.java:206) 
     at org.apache.lucene.queryParser.QueryParser.Term(QueryParser.java:1429) 
     at org.apache.lucene.queryParser.QueryParser.Clause(QueryParser.java:1317) 
     at org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:1245) 
     at org.apache.lucene.queryParser.QueryParser.TopLevelQuery(QueryParser.java:1234) 
     at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:206) 
     at org.apache.solr.search.LuceneQParser.parse(LuceneQParserPlugin.java:79) 
     at org.apache.solr.search.QParser.getQuery(QParser.java:143) 
     at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:105) 
     at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:165) 
     at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) 
     at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376) 
     at org.apache.solr.handler.PingRequestHandler.handleRequestBody(PingRequestHandler.java:67) 
     at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) 
     at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376) 
     at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365) 
     at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260) 
     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:293) 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
     at java.lang.Thread.run(Thread.java:679) 
+0

Faktycznie, wydaje się, że typ pola tekstowego jest zadeklarowana w moim schemacie. Linia 220 >> http://pastebin.com/KrCVab0U –

+0

Sprawdź, czy to pomaga http://stackoverflow.com/questions/10130163/solr-query-http-error-404-undefined-field-text – krishnakumarp

+0

Co się tyczy Widzę, że nie masz zadeklarowanego tekstu pola, a jedynie fieldType. Błąd "niezdefiniowany typ pola" wydaje się być poprawny, jeśli próbujesz dodać treść do pola o nazwie tekst, którego nie masz w swoim schemacie. Czy czegoś brakuje? – javanna

Odpowiedz

17

Nie chodzi o typ pola "tekst". Chodzi o pole o nazwie "tekst".

Zmieniono domyślne pole w config na "search_text". Spróbuj zmienić nazwy wszystkich odniesień do "search_text" na "text". Jeśli to rozwiązuje problem, to wiesz, gdzieś w konfiguracji masz na myśli „tekst” pola, ewentualnie w solrconfig.xml jak zasugerowano w Solr Query - HTTP error 404 undefined field text

Nadzieję, że to pomaga.

8

Mam to w moim pliku solrconfig.xml.

<requestHandler name="/admin/ping" class="solr.PingRequestHandler"> 
<lst name="invariants"> 
    <str name="q">solrpingquery</str> 
</lst> 
<lst name="defaults">  
    <str name="echoParams">all</str> 
    </lst> 
</requestHandler> 

Jeśli nie dodałem to w schema.xml następnie dodać go

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

to rozwiąże problem.

Dzięki

+1

w Solr6, mała różnica: należy dodać pole "_ text _" do schema.xml (zamiast "text"). Pole "_ text _" jest używane w domyślnym rozwiązaniu Solrconfig –

2

To właśnie stało za mną dzisiaj. Jeśli robisz zapytania, gdy wystąpi błąd to trzeba podwoić cytowane dane w kwerendzie tak:

filepath: „dane mają być pytani”

+0

, co nie rozwiąże błędu "tekstowego" niezdefiniowanego pola, czy wystąpił ten sam błąd co @ lee-davis? –

2

Mam ten sam błąd, gdy oczyszczone z fq udział zapytania. Po dezynfekcji, Solr otrzymał

...&fq=type\:Product&... 

Mimo że pole o nazwie type, błąd został mówiąc „Undefined text field”.

Kiedy usunąłem odkażenie, zapytanie było ok następnie:

...&fq=type:Product&... 

Przyczyną zamieszania był komunikat o błędzie w solrconfig.xml:

<requestHandler name="/select" class="solr.SearchHandler"> 
    <lst name="defaults"> 
    <str name="echoParams">explicit</str> 
    <int name="rows">10</int> 
    <str name="df">text</str> 
    </lst> 
</requestHandler> 
2

interfejs solr administratora można zobaczyć aktualnie działający schemat, możesz być pewien, że jesteś na dobrej drodze. poniżej pictrues ilistruates

4.10.2 i wyższą wersję (przypuszczam)

solr.4.10.2

niższy niż wersje 4.10.2. powinieneś użyć lewej strony menu Scheme.

solr.4.10.2

Powiązane problemy