Почему они создали концепцию "schema.xml" в Solr? - PullRequest
3 голосов
/ 27 февраля 2011

Lucene выполняет поиск и индексацию, используя «кодирование» ... Почему Solr не делает то же самое?Зачем нам нужен файл schema.xml?В чем его важность?Есть ли способ избежать размещения всех полей, которые мы хотим, в schema.xml?(Я думаю, что динамические поля - это путь, верно?)

Ответы [ 3 ]

6 голосов
/ 27 февраля 2011

Так оно и было построено. Lucene - это библиотека, поэтому вы связываете свой код с ней. Solr, с другой стороны, является сервером, и в некоторых случаях вы можете просто использовать его с очень небольшим количеством кода (например, используя DataImportHandler для индексации и плагин Velocity для просмотра и поиска).

Схема позволяет вам декларативно определять, как каждое поле анализируется и запрашивается.

Если вам нужен сервер без схемы на основе Lucene, взгляните на ElasticSearch .

5 голосов
/ 28 февраля 2011

Если вы хотите избежать постоянной подстройки вашего schema.xml, то динамические поля - действительно путь.Например, мне нравится Sunspot schema.xml - он использует динамические поля для настройки соглашений об именах на основе типов в именах полей.

https://github.com/outoftime/sunspot/blob/master/sunspot/solr/solr/conf/schema.xml

На основе этой схемы полеимя content_text будет проанализировано как текстовое поле:

<dynamicField name="*_text" stored="false" type="text" multiValued="true" indexed="true"/>

, что соответствует более раннему определению текста fieldType.

Большинство файлов schema.xml, с которыми я работаю, запускаютсявыкл на основе схемы Sunspot.Я обнаружил, что вы можете сэкономить много времени, установив и повторно используя хорошее соглашение в вашем schema.xml.

1 голос
/ 27 февраля 2011

Solr выступает в качестве автономного поискового сервера и может быть настроен без кодирования. Вы можете думать об этом как о начале для Lucene. Цель файла schema.xml - определить ваш индекс.

Если возможно, я бы предложил определить все ваши поля в файле схемы. Это дает вам больший контроль над тем, как эти поля индексируются, и позволяет вам использовать преимущества полей копирования (если они вам нужны).

...