我已经成功编写了一个自定义函数并将其挂钩到我的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>
这不起作用,因为它与变量中的变量混淆。
有关如何使这项工作的任何建议?
答案 0 :(得分:1)
尝试
<entity name="doc" query="SELECT id, date, ${dataimporter.functions.myfunc(doc.id,doc.date)} AS custom_value FROM Documents" />
答案 1 :(得分:1)
生成custom_value的另一种方法是使用变换器标记
在transformer_row中,您可以在行中添加更多列,或者根据需要编写自定义函数进行转换。