2014-02-10 82 views
1

我需要使用DataImportHandler在索引時設置字段提升。 我試圖做這樣的事情:Solr:使用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> 

請問,你有什麼建議嗎?

回答

1

不幸的是,除非您在實體中指定靜態提升值,否則不支持在變換器中每個字段進行動態提升。有一種方法來設置文檔提升,但它會影響像文檔中的所有字段:

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

如果這是你需要的不是我會建議看query time boosting,因爲你已經存儲了「助推「領域。

+0

不幸的是我需要設置一個不同的提升領域 – Dany

相關問題