SOLR DataImportHandler не оценивает выражения - PullRequest
0 голосов
/ 07 января 2011

Я пытаюсь использовать SOLR DataImportHandler для подачи данных.Настройка была простой и понятной, и все работало нормально, когда я импортировал только одно поле из корневого объекта.

Но когда я попытался импортировать поля из вложенных объектов, это не сработало, и я действительно озадачен изастрял.

Вот соответствующий фрагмент из моего dataconfig:

<dataConfig>
    <dataSource ... />
    <document>
        <entity name="a" query="select id, b_id from a" pk="id">
               <entity name="b" query="select title from b where id ='${a.b_id}'">
                   <field column="title" name="title" />
               </entity>
        </entity>
    </document>
</dataConfig>

Когда я пытаюсь отладить импорт с помощью DIH Development Console с включенной многословной, я вижу что-то вроде:

...
<lst name="document#3">
<str>----------- row #1-------------</str>
<str name="ID">PST_210-SI.10             </str>
<str name="B_ID">6c2r3490seeqvb86pgb4c4trf9</str>
<str>---------------------------------------------</str>
−
<lst name="entity:b">
<str name="query">select title from b where id =''</str>
<str name="query">select title from b where id =''</str>
<str name="query">select title from b where id =''</str>
<str name="time-taken">0:0:0.1</str>
<str name="time-taken">0:0:0.1</str>
<str name="time-taken">0:0:0.1</str>
</lst>
</lst>

Я думаю, что интересным моментом являются 3 запроса в сущности b , где поле id пустое.Мне кажется, что $ {a.b_id} не оценивается, но я не могу понять, почему.

Может кто-нибудь помочь, пожалуйста?Заранее спасибо.

1 Ответ

2 голосов
/ 07 января 2011

Ха, как обычно - потратив целый день, пытаясь найти решение, когда я исчерпываю все идеи и задаю вопрос сообществу ... Я сам внезапно нахожу решение :)

Подвох был чувствительностью к регистру- Если вы посмотрите правильно на подробный вывод XML, то по какой-то причине .Поэтому я попытался использовать выражение $ {a.B_ID} , и оно работает!

Возможно, верхний регистр может быть указан только для драйвера JDBC Oracle.

...