2011-08-30 14 views
5

Czy są jakieś solr api do odczytu solr schema.xml? Powodem, dla którego tego potrzebuję jest to, że aspekt solr nie jest zgodny z poprzednimi wersjami. Jeśli indeks nie definiuje pola A, ale program próbuje wygenerować aspekt dla pola A, wszystkie aspekty się nie powiedzie. Dlatego muszę sprawdzić w środowisku wykonawczym, które pola indeksu mamy w indeksie i dynamicznie generować aspekty.Czy solr ma interfejs API do odczytu pliku solr schema.xml?

Odpowiedz

3

można dostać schemat z http://localhost:8983/solr/admin/file/?contentType=text/xml;charset=utf-8&file=schema.xml

jest to surowy xml, więc trzeba analizować je, aby uzyskać potrzebne informacje.

Jeśli jednak program generuje nieprawidłowy aspekt, może powinieneś po prostu naprawić program zamiast próbować obejść ten problem.

+0

Dawka solr mieć API, aby ją przeczytać? Zauważyłem, że api do czytania solrconf.xml jest dostępny. Jednak nie mogę znaleźć tego dla schema.xml –

+0

@Qing Zhang: jaka jest twoja platforma klienta? –

+0

Jak czytać plik solrconf.xml przez api, jakikolwiek link do dokumentu? Próbowałem znaleźć, ale nie mogłem go znaleźć. – Krunal

3

Jedną z alternatyw jest użycie LukeRequestHandler. Jest wzorowany na narzędziu Luke, które służy do diagnozowania zawartości indeksu Lucene. Zapytanie/admin/luke? Show = schema, pokaże ci schemat. Jednak trzeba będzie zdefiniować go w solrconfig.xml tak:

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

Dokumentacja LukeRequestHandler link

3

Od Solr 4.2 Schemat API REST pozwala uzyskać schematu z:

http://localhost:8983/solr/schema 

lub z nazwą rdzeń:

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

Od Solr 4.4 możesz także zmodyfikować swój schemat.

more details on the Solr Wiki page

1

Właściwie masz API schematu dla tego. Solr schemat API pozwala za pomocą REST API, aby uzyskać informacje na temat schema.xml

W Solr 4.2 i 4.3, pozwala dostać tylko (tylko do odczytu) dostępu, ale w Solr 4.4, nowe pola i dyrektyw copyField może zostać dodany do schematu. Przyszłe wersje Solr obejmie tę funkcję, aby umożliwić bardziej schematu elementy mają być aktualizowane

API punktów wejściowych

/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 

Przykłady

wejściowe Pobierz listę wszystkich dziedzinach.

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

Wprowadź Pobierz cały schemat w JSON.

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

Więcej informacji here: apache-solr-ref-guide-4.5.pdf (poszukiwanie schematu API)