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 вы можете добавить столбец в строку или написать собственную функцию для преобразования, если хотите.