2012-07-03 12 views
12

Recientemente actualicé mi instancia de solr de 1,4 a 3,6. Sin embargo, parece que recibo un mensaje grave de "texto de campo indefinido" en mis registros cada vez que actualizo mi índice.Solr "texto de campo no definido"

Tengo campos de texto en mi esquema (que era válido a partir de la versión 1.4), pero nunca antes había tenido que ser declarado como un tipo de campo. ¿Esto ha cambiado en 3.6?

Mi esquema es aquí >>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

En realidad, parece que el tipo de campo de texto se declara en mi esquema. Línea 220 >> http://pastebin.com/KrCVab0U –

+0

Vea si esto ayuda a http://stackoverflow.com/questions/10130163/solr-query-http-error-404-undefined-field-text – krishnakumarp

+0

En cuanto a Veo que no tiene el texto de campo declarado, solo el fieldType. El error "tipo de campo indefinido" parece correcto si está intentando agregar contenido a un campo llamado texto, que no tiene en su esquema. ¿Me estoy perdiendo de algo? – javanna

Respuesta

17

No se trata de tipo "texto" de campo. Se trata del campo llamado "texto".

Ha cambiado el campo predeterminado en config a "texto_buscado". Intente cambiar el nombre de todas las referencias a "texto_buscado" por "texto". Si esto soluciona el problema, entonces sabrá en algún lugar de la configuración que se refiere al campo "texto", posiblemente en solrconfig.xml como se sugiere en Solr Query - HTTP error 404 undefined field text

Espero que ayude.

8

tengo esto en mi archivo 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> 

Si no se ha añadido este en schema.xml luego añadirlo

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

Esto va a resolver su problema.

Gracias

+1

en Solr6, una pequeña diferencia: es necesario agregar el campo "_ texto _" a schema.xml (en lugar de "texto"). El campo "_ text _" se usa en el valor predeterminado de solrconfig –

2

Hoy me pasó a mí también. Si estás haciendo una consulta cuando se produce el error, entonces usted necesita comillas dobles los datos de la consulta como la siguiente:

vía de archivo: "los datos a ser consultados"

+0

. Esto no va a resolver el error de "texto" de campo indefinido. ¿Recibió el mismo error que @ lee-davis? –

2

me dieron el mismo error cuando Sanitized la parte fq de la consulta. Después de la desinfección, la Solr recibido

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

Aunque he campo denominado type, el error estaba diciendo “Texto del ámbito definido”.

Cuando quité la desinfección, la consulta fue bien entonces:

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

La causa del mensaje de error confuso estaba en 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

en la interfaz de administración Solr se puede ver Actualmente el esquema de trabajo puede estar seguro si está en el camino correcto. a continuación pictrues ilistruates

4.10.2 y superior versión (supongamos)

solr.4.10.2

inferior versiones que 4.10.2. debe usar el lado izquierdo Scheme menú.

solr.4.10.2

Cuestiones relacionadas