Solr: использование пользовательских функций в обработчике импорта данных - PullRequest
0 голосов
/ 07 апреля 2011

Я успешно написал пользовательскую функцию и подключил ее к своему движку Solr.Однако у меня возникают проблемы при передаче параметров в эту функцию из файла определения импорта data-import.xml.

Я пытался использовать методы, один из которых передает поле из текущего запроса объекта, а другой -Подход, который пытается использовать переменную из последнего запроса ... похоже, не работает.

Попытка 1: передать столбцы из текущего запроса:

<entity name="doc" query="SELECT id, date, ${dataimporter.functions.myfunc(id,date)} AS custom_value FROM Documents" />

Это не работает какИдентификатор и дата, похоже, передаются в виде литералов, а не значений столбцов.

Попытка 2:

<entity name="doc" query="SELECT id, date FROM Documents">
  <entity name="special" query="SELECT ${dataimporter.functions.myfunc(${doc.id}, ${doc.date})} AS custom_value" >
          <field name="custom_value" column="custom_value" />
  </entity>
</entity>

Это не работает, потому что запутывается в переменной внутри переменной.

Какие-нибудь предложения о том, как заставить это работать?

Ответы [ 2 ]

1 голос
/ 30 сентября 2011

Другой способ создать custom_value - использовать тег преобразователя

в transformer_row вы можете добавить столбец в строку или написать пользовательскую функцию для преобразования, если хотите.

1 голос
/ 07 апреля 2011

Попробуйте

<entity name="doc" query="SELECT id, date, ${dataimporter.functions.myfunc(doc.id,doc.date)} AS custom_value FROM Documents" />

...