2011-08-30 12 views
5

Esiste qualche solr api per leggere lo schema sol.xml? La ragione per cui ne ho bisogno è che solr facet non è retrocompatibile. Se l'indice non definisce il campo A, ma il programma tenta di generare sfaccettature per il campo A, tutte le sfaccettature falliranno. Pertanto, è necessario verificare nel runtime quali campi dell'indice abbiamo nell'indice e generare dinamicamente le sfaccettature.Il solr ha API per leggere solr schema.xml?

risposta

3

È possibile ottenere lo schema con http://localhost:8983/solr/admin/file/?contentType=text/xml;charset=utf-8&file=schema.xml

E 'il XML grezzo, in modo da avere per analizzarlo per ottenere le informazioni necessarie.

Tuttavia, se il programma genera un aspetto non valido, forse è sufficiente correggere il programma anziché tentare di aggirare il problema.

+0

dose solr hanno API per leggerlo? Ho notato che l'API per la lettura di solrconf.xml è disponibile. Tuttavia non riesco a trovare quello per schema.xml –

+0

@Qing Zhang: qual è la piattaforma client? –

+0

Come leggere solrconf.xml tramite api, qualsiasi link a doc? Ho provato a trovare, ma non riesco a trovarlo. – Krunal

3

Un'alternativa è utilizzare LukeRequestHandler. È modellato sullo strumento Luke che viene utilizzato per diagnosticare il contenuto di Lucene Index. La query/admin/luke? Show = schema, ti mostrerà lo schema. Tuttavia, sarà necessario definire in solrconfig.xml in questo modo:

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

Documentazione di LukeRequestHandler link

3

Dal Solr 4.2 l'API REST schema permette di ottenere lo schema con:

http://localhost:8983/solr/schema 

o con un nome nucleo:

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

da Solr 4.4 puoi anche modificare il tuo schema.

more details on the Solr Wiki page

1

In realtà si ha l'API schema per questo. Lo schema API Solr permette di utilizzare un'API REST per ottenere informazioni circa la schema.xml

In Solr 4.2 e 4.3, in quanto consente solo GET (sola lettura) l'accesso, ma in Solr 4.4, nuovi campi e direttive copyField può essere aggiunto allo schema. Le versioni future Solr sarà estendere questa funzionalità per consentire più schema elementi da aggiornare

API Punti di Entrata

/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 

Esempi

ingresso Ottenere un elenco di tutti i campi.

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

ingresso ottenere l'intero schema in JSON.

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

Maggiori informazioni here: apache-solr-ref-guide-4.5.pdf (ricerca di schema API)