Есть ли у solr API для чтения solr schema.xml? - PullRequest
6 голосов
/ 30 августа 2011

Есть ли solr api для чтения solr schema.xml?Причина, по которой мне это нужно, заключается в том, что solr-фасет не имеет обратной совместимости.Если индекс не определяет поле A, но программа пытается сгенерировать фасет для поля A, все фасеты потерпят неудачу. Поэтому мне нужно во время выполнения проверить, какие поля индекса у нас есть в индексе, и динамически генерировать фасеты.

Ответы [ 4 ]

3 голосов
/ 30 августа 2011

Одной из альтернатив является использование LukeRequestHandler. Он создан по образцу инструмента Luke , который используется для диагностики содержимого индекса Lucene. Запрос / admin / luke? Show = schema, покажет вам схему. Однако вам нужно определить его в solrconfig.xml следующим образом:

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

Документация LukeRequestHandler ссылка

3 голосов
/ 18 сентября 2013

Начиная с Solr 4.2, API схемы REST позволяет получить схему с:

http://localhost:8983/solr/schema

или с именем ядра:

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

Начиная с Solr 4.4, вы также можете изменить свойсхема.

подробнее на странице Solr Wiki

3 голосов
/ 30 августа 2011

Вы можете получить схему с http://localhost:8983/solr/admin/file/?contentType=text/xml;charset=utf-8&file=schema.xml

Это необработанный xml, поэтому нужно разобрать его, чтобы получить необходимую информацию.

Однако, если ваша программа генерирует неверный фасет, возможно, вам следует просто исправить программу, а не пытаться обойти это.

2 голосов
/ 29 октября 2013

На самом деле для этого у вас есть API схемы. API схемы Solr позволяет использовать API REST для получения информации о schema.xml

В Solr 4.2 и 4.3 он разрешает только GET (только для чтения) доступ, но в В Solr 4.4 новые схемы и директивы copyField могут быть добавлены в схему. Будущие выпуски Solr расширят эту функциональность, чтобы позволить больше схемы элементы для обновления

Точки входа 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

Примеры

Input Получить список всех полей.

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

Input Получить всю схему в формате JSON.

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

Подробнее здесь: apache-solr-ref-guide-4.5.pdf (поиск по API схемы)

...