我需要在索引时使用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}"
我所做的另一个方法是尝试使用脚本(转换器,但我不知道在字段设置提升的语法):
<script><![CDATA[
function addfield(row){
var fieldName = row.get('id') + "_text"
row.put(fieldName, row.get('text'));
return row;
}
]]></script>
拜托,你有什么建议吗?
遗憾的是,转换器中不支持每个字段的动态提升,除非您在实体中指定静态提升值。有一种方法可以设置文档提升,但它会影响文档中的所有字段,例如:
row.put('$docBoost', row.get('boost'));
如果这不是您需要的,我建议您查看查询时间提升,因为您已经存储了"提升"字段。