Получение XML-совместимого результата от вложенных массивов Solr - PullRequest
0 голосов
/ 11 января 2019

У меня интересный случай - мой индекс Solr основан на таблице, содержащей массив в другом массиве.

Теперь мне нужно извлечь данные из индекса в формате XML.

Нет проблем с XML, когда вы выбираете данные из массива, но когда вы получаете другой массив внутри первого, ваш результат XML становится недействительным.

Есть структура простого массива:

orgdata array <struct <fs_form_num:string, fs_unit:string, fs_value:string>>

Результат запроса становится красивым XML с правильной структурой:

<str name="orgdata">
<item fs_form_num="2" fs_unit="lb" fs_value="100"/> 

И вот моя текущая проблема (упрощенно):

orgdata array <struct< fs_form_num:string, formdata:array<struct<fs_unit:string>>>>

И результат XML в этом случае не так корректен:

<str name="orgdata"> <item fs_form_num="2" formdata="<item fs_unit="lb" fs_value="100"/>" /> 

Как видите,

<str name="orgdata"> <item fs_form_num="2" formdata="<item fs_unit="lb" fs_value="100"/>" /> 

не является допустимой структурой XML.

Я что-то не так делаю, или он (Solr) работает как задумано, и мне приходится вручную преобразовывать структуру вложенных элементов во что-то правильное (через XSL или Apache Camel)?

Edit:

Я точно определил свою проблему - я не могу ее правильно удалить -

<str name="orgdata">&lt;item fs_form_num="2" formdata="&lt;item fs_unit="lb" /&gt;&lt;item fs_unit="ton" /&gt;" /&gt;</str>

потому что я понятия не имею, как удалить первый массив без удаления второго, например:

<str name="orgdata"><item fs_form_num="2" formdata="&lt;item fs_unit="lb" /&gt;&lt;item fs_unit="ton" /&gt;"/></str>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...