guide - Solr Query-HTTP error 404 texto de campo indefinido
solr xls (4)
Tengo una instancia de Solr ejecutándose en mi máquina Ubuntu usando el servidor Jetty predeterminado que viene con la descarga de Solr. Cada vez que comienzo Solr usando
java -jar start.jar
El servidor comienza bien pero siempre hay una excepción lanzada:
INFO: SolrDispatchFilter.init() done
Apr 12, 2012 2:01:56 PM org.apache.solr.common.SolrException log
SEVERE: org.apache.solr.common.SolrException: undefined field text
Como dije, el servidor aún se iniciará y puedo ver la interfaz de administración de Solr. Definí mi esquema de la siguiente manera.
<fields>
<field name="id" type="string" indexed="true" stored="true" />
<field name="phraseID" type="int" indexed="true" stored="true" />
<field name="translation" type="string" indexed="true" stored="true" />
</fields>
<uniqueKey>id</uniqueKey>
También pude realizar una actualización de JSON: envié una matriz de muestra de datos que fue aceptada. Hasta este punto todo está bien.
Cuando intento ejecutar una consulta:
http://localhost:8983/solr/select/?q=*:*&version=2.2&start=0&rows=10&indent=on
Devuelve correctamente todos los datos que presenté en mi muestra anterior.
Sin embargo, en el momento en que trato de consultar usando texto, recibo un HTTP ERROR 404.
http://localhost:8983/solr/select/?q=fruit&version=2.2&start=0&rows=10&indent=on
--- returns ---
HTTP ERROR 400
Problem accessing /solr/select/. Reason:
undefined field text
Powered by Jetty://
La configuración de solr predeterminada ha definido algunos controladores de solicitudes con los valores predeterminados que coinciden con el esquema predeterminado incluido en el tarball de solr.
Compruebe los controladores de solicitudes definidos en solrconfig y puede encontrar que <str name="qf">
y otros valores de configuración incluyen algunos campos que no ha definido en el esquema.
Además, compruebe su schema.xml, que el campo de búsqueda predeterminado no está configurado para <defaultSearchField>text</defaultSearchField>
texto como este: <defaultSearchField>text</defaultSearchField>
Tengo el mismo problema que aparece en una respuesta 404 a veces como se describió anteriormente o como una excepción en el rastro de la pila del embarcadero:
SEVERE: org.apache.solr.common.SolrException: texto de campo indefinido
at org.apache.solr.schema.IndexSchema.getDynamicFieldType(IndexSchema.java:1330) at org.apache.solr.schema.IndexSchema.getFieldType(IndexSchema.java:1282) at org.apache.solr.search.SolrQueryParser.getWildcardQuery(SolrQueryParser.java:234) at org.apache.lucene.queryParser.QueryParser.Term(QueryParser.java:1414)
Comprobé defaultSearchField que está configurado en "contenido" (lo cual me parece bien)
Editar: Tengo en mi schema.xml la siguiente definición para texto tipo (no veo problema en ello)
<fieldType name="text" class="solr.TextField"
positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1"
catenateWords="1" catenateNumbers="1" catenateAll="0"
splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory"
protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
Yo tuve el mismo problema. En caso de que no haya <defaultSearchField>
en el archivo solrconfig.xml
, busque el controlador /select
.
Dentro de eso encontrarás algo como esto
<str name="df">text</str>
Ese es el culpable. df
significa el campo predeterminado y, de forma predeterminada, y de manera agradable, de manera estúpida, se establece en un campo llamado text
que muchos podrían no tener.
Quítelo y reemplácelo con lo que sea su campo de búsqueda predeterminado.
El campo de texto está compuesto por copias de otros campos, como se especifica en el esquema predeterminado.xml (al insertar un documento nuevo).
Entonces, cuando tenemos el df "text" en solrconfig.xml, hacemos una búsqueda sin especificar el campo en la página de administración de Solr, como por ejemplo: video. Se buscará en el campo de texto (que está compuesto por copias de otros campos).