Solr的6.1:基于字段名称UpdateRequestProcessor追加到字段名称
问题描述:
的目标是有我所有的字段名称相匹配字段以下模式: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>
这样做的原因是双重的:
- 我正在摄取我无法控制的传入CSV数据。我有一组35个不同的字段名称,它们是上面的一个或两个。
- 除了这35个字段外,模式还在不断发展。
目标是有条件的〜35以上的一个子集和任何不匹配的一个〜35名获取与_s
附加使它成为一个字符串。
这是可能的Solr 6?
答
你总是可以声明一个动态字段星号(*)来获得字符串的类型。这样你就不需要修改后缀。
目前我最终编写了一个临时存储数据批量并相应地更新标头的python脚本。 – DeeVu