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
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.
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
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.
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)
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 –
@Qing Zhang: jaka jest twoja platforma klienta? –
Jak czytać plik solrconf.xml przez api, jakikolwiek link do dokumentu? Próbowałem znaleźć, ale nie mogłem go znaleźć. – Krunal