2014-12-30 2 views
0

SOLR позволяет использовать для определения типа поля, используя такие параметры, как:Пользовательский класс поля в ГУМЗЕ

<fieldtype name= "text_th" class = "solr.TextField" /> 

Здесь класс представляет собой встроенный класс SOLR. Разрешено ли нам определять наш собственный класс и использовать его в определении fieldType? Я хотел бы иметь класс таких, как MyCompany.MyClass { имя String, ИНТ возраста, поплавок зарплата }

Это объясняется тем, что значение, которое я храню в Solr документ представляет собой составное значение составило из 3 компонентов. Если это разрешено, существуют ли какие-либо рекомендации или определенные методы для таких классов, например, как разработать токенизатор для такого пользовательского класса и т. Д.?

Спасибо,

Yash

ответ

3

Да, вы можете создать свой собственный FieldType - однако должны быть очень конкретные причины, чтобы сделать это. Балансом Solr является Lucene, поэтому ваша ответственность будет заключаться в маршалировании контента между представлением Solr и поддержкой реализации Lucene.

Возможными отправными точками могут быть the implementation of StrField in Solr (это просто поле в Луцене) или более продвинутые примеры, такие как LatLonType и PointField.

Помните, что причиной создания нового типа поля должно быть выражение того, что невозможно с доступными в настоящее время типами полей (или значительно упростить обработку таких значений). Помните, что вам, возможно, придется заботиться о том, как должна работать сортировка, как должна работать фильтрация и т. Д. И синтаксиса для всех этих элементов.

Обычно вам намного лучше (и фактически поддерживаемому решению), создавая отдельную коллекцию или индексируя свой контент более чем одним способом. Пользовательские типы полей (на уровне Lucene/Solr) почти никогда не отвечают.

+0

Привет, может быть, вы можете дать больше ссылок, где читать о реализации настраиваемых полей в solr? – zygimantus

Смежные вопросы