1

我需要在索引时使用 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>

请问,你有什么建议吗?

4

1 回答 1

1

不幸的是,不支持转换器中每个字段的动态提升,除非您在实体中指定静态提升值。有一种方法可以设置文档提升,但它会影响文档中的所有字段,例如:

 row.put('$docBoost', row.get('boost'));

如果这不是您需要的,我建议您查看查询时间提升,因为您已经存储了“提升”字段。

于 2014-02-10T16:57:30.057 回答