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
È 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.
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
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.
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)
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 –
@Qing Zhang: qual è la piattaforma client? –
Come leggere solrconf.xml tramite api, qualsiasi link a doc? Ho provato a trovare, ma non riesco a trovarlo. – Krunal