2016-11-17 81 views
0

的目標是有我所有的字段名稱相匹配字段以下模式:Solr的6.1:基於字段名稱UpdateRequestProcessor追加到字段名稱

<field name="_version_" type="long" indexed="true" stored="true" /> 
<field name="_root_" type="string" indexed="true" stored="false" /> 
<field name="id" type="string" indexed="true" stored="true" required="true" /> 
<field name="text" type="text_general" indexed="true" stored="false" required="false" multiValued="true" /> 
<dynamicField indexed="true" name="*_is" stored="true" type="int" multiValued="true" /> 
<dynamicField indexed="true" name="*_ls" stored="true" type="long" multiValued="true" /> 
<dynamicField indexed="true" name="*_fs" stored="true" type="float" multiValued="true" /> 
<dynamicField indexed="true" name="*_ds" stored="true" type="double" multiValued="true" /> 
<dynamicField indexed="true" name="*_bs" stored="true" type="boolean" multiValued="true" /> 
<dynamicField indexed="true" name="*_i" stored="true" type="int" /> 
<dynamicField indexed="true" name="*_s" stored="true" type="string" /> 
<dynamicField indexed="true" name="*_ss" stored="true" type="string" multiValued="true" /> 
<dynamicField indexed="true" name="*_txt" stored="true" type="text_general" multiValued="true" /> 
<dynamicField indexed="true" name="*_t" stored="true" type="text_general" /> 
<dynamicField indexed="true" name="*_l" stored="true" type="long" /> 
<dynamicField indexed="true" name="*_b" stored="true" type="boolean" /> 
<dynamicField indexed="true" name="*_f" stored="true" type="float" /> 
<dynamicField indexed="true" name="*_d" stored="true" type="double" /> 
<dynamicField indexed="true" name="*_tdt" stored="true" type="tdate" /> 
<dynamicField indexed="true" name="*_dt" stored="true" type="date" /> 
<uniqueKey>id</uniqueKey> 

這樣做的原因是雙重的:

  1. 我正在攝取我無法控制的傳入CSV數據。我有一組35個不同的字段名稱,它們是上面的一個或兩個。
  2. 除了這35個字段外,模式還在不斷髮展。

目標是有條件的〜35以上的一個子集和任何不匹配的一個〜35名獲取與_s附加使它成爲一個字符串。

這是可能的Solr 6?

+0

目前我最終編寫了一個臨時存儲數據批量並相應地更新標頭的python腳本。 – DeeVu

回答

0

你總是可以聲明一個動態字段星號(*)來獲得字符串的類型。這樣你就不需要修改後綴。