2011-08-30 7 views
5

¿Hay alguna aplicación de solr para leer el solr schema.xml? La razón por la que lo necesito es que la faceta de Solr no es compatible con versiones anteriores. Si el índice no define el campo A, pero el programa intenta generar faceta para el campo A, todas las facetas fallarán. Por lo tanto, necesito verificar en el tiempo de ejecución qué campos de índice tenemos en el índice y generar las facetas dinámicamente.¿Solr tiene API para leer solr schema.xml?

Respuesta

3

Usted puede obtener el esquema con http://localhost:8983/solr/admin/file/?contentType=text/xml;charset=utf-8&file=schema.xml

Es el xml prima, por lo que tiene que analizar para obtener la información que necesita.

Sin embargo, si su programa genera una faceta inválida, quizás debería arreglar el programa en lugar de tratar de evitar esto.

+0

Solr de dosis tienen API para leerlo? Noté que api para leer solrconf.xml está disponible. Sin embargo, no puedo encontrar el de schema.xml –

+0

@Qing Zhang: ¿cuál es su plataforma de cliente? –

+0

¿Cómo leer solrconf.xml mediante api, cualquier enlace al documento? Traté de encontrarlo, pero no pude encontrarlo. – Krunal

3

Una alternativa es usar LukeRequestHandler. Se basa en la herramienta Luke que se utiliza para diagnosticar el contenido del índice Lucene. El query/admin/luke? Show = schema, le mostrará el esquema. Sin embargo, tendrá que definirlo en solrconfig.xml así:

<requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" /> 

Documentación de LukeRequestHandler link

3

Desde Solr 4.2 Esquema de la API REST le permite obtener el esquema con:

http://localhost:8983/solr/schema 

o con un nombre núcleo:

http://localhost:8983/solr/mycorename/schema 

Desde Solr 4.4 también puede modificar su esquema.

more details on the Solr Wiki page

1

En realidad, usted tiene la API de esquema para eso. La API esquema Solr permite el uso de una API REST para obtener información sobre el schema.xml

En Solr 4.2 y 4.3, que sólo permite GET (sólo lectura) de acceso, pero en Solr 4.4, nuevos campos y directivas copyField se puede agregar al esquema. Futuras versiones Solr se extenderán esta funcionalidad para permitir que más de esquema elementos que se actualizan

puntos de entrada API

/collection/schema: retrieve the entire schema 
/collection/schema/fields: retrieve information about all defined fields, or create new  fields with optional copyField directives 
/collection/schema/fields/name: retrieve information about a named field, or create a new named field with optional copyField directives 
/collection/schema/dynamicfields: retrieve information about dynamic field rules 
/collection/schema/dynamicfields/name: retrieve information about a named dynamic rule 
/collection/schema/fieldtypes: retrieve information about field types 
/collection/schema/fieldtypes/name: retrieve information about a named field type 
/collection/schema/copyfields: retrieve information about copy fields, or create new copyField directives 
/collection/schema/name: retrieve the schema name 
/collection/schema/version: retrieve the schema version 
/collection/schema/uniquekey: retrieve the defined uniqueKey 
/collection/schema/similarity: retrieve the global similarity definition 
/collection/schema/solrqueryparser/defaultoperator: retrieve the default operator 

Ejemplos

entrada Obtener una lista de todos los campos.

curl http://localhost:8983/solr/collection1/schema/fields?wt=json 

entrada Obtener todo el esquema en JSON.

curl http://localhost:8983/solr/collection1/schema?wt=json 

Más información here: apache-solr-ref-guide-4.5.pdf (búsqueda de API de esquema)