我需要使用DataImportHandler在索引时设置字段提升。 我试着做这样的事情:
<entity name="places"
query="Select id, boost, text from table">
<field name="id" column="id" />
<field name="boost" column="boost" />
<field name="1_text" column="text" boost="${boost}" />
</entity>
但它不起作用。那是错误:
Caused by: java.lang.NumberFormatException: For input string: "${boost}"
我做的另一个approch是尝试使用脚本(变换器,但我不知道在字段设置boost的语法):
<script><![CDATA[
function addfield(row){
var fieldName = row.get('id') + "_text"
row.put(fieldName, row.get('text'));
return row;
}
]]></script>
拜托,你有什么建议吗?
答案 0 :(得分:1)
不幸的是,除非在实体中指定静态增强值,否则不支持变压器中每个场的动态增强。有一种方法可以设置文档提升,但它会影响文档中的所有字段,如:
row.put('$docBoost', row.get('boost'));
如果这不是您所需要的,我建议您查看query time boosting,因为您已经存储了“提升”字段。