Solr: использование пользовательских функций в обработчике импорта данных

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

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

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

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

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

Попытка 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 ответа

Решение

Пытаться

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

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

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

Другие вопросы по тегам