Solr:使用DataImportHandler在索引时设置字段提升

时间:2014-02-10 15:02:07

标签: solr lucene solr4 solr-boost

我需要使用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>

拜托,你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

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

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