Сценарий:
В базе данных у меня есть поле с именем Categories , которое имеет тип string и содержит число разделенных символом труб, таких как 1|8|90|130|
Что я хочу:
В индексе Solr я хочу иметь 2 поля:
- Поле Категории _ труба , которая будет содержать точную строку, как в БД, т.е.
1|8|90|130|
- Поле Категории , которое будет многозначным полем типа INT, содержащим значения 1, 8, 90 и 130
Для последнего, в спецификации сущности я могу использовать regexTransformer, а затем указать следующее поле в data-config.xml:
<field column="Categories" name="Navigation" splitBy="\|"/>
и затем укажите поле как многозначное в schema.xml
Чего я не знаю, так это как я могу «скопировать» одно и то же поле дважды и выполнить разбиение регулярного выражения только на одном. Я знаю, что есть средство copyField
, которое можно определить в schema.xml, однако я не могу найти способ преобразовать скопированное поле, потому что, насколько я знаю (и я могу ошибаться здесь), преобразователи доступны только в сущности спецификация.
В качестве обходного пути я также могу дважды отправить одно и то же поле из запроса сущности, но в действительности поле Categories является вычисляемым полем (выбирает вложенное), которое несколько дорого, поэтому я хотел бы избежать его .
Любая помощь приветствуется, спасибо.