0

目标是让我的所有字段名称都与以下字段模式匹配:

<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 中可能吗?

4

1 回答 1

0

您总是可以只声明一个动态字段星 (*) 以具有字符串类型。这样你就不需要弄乱后缀了。

于 2016-11-18T08:13:33.393 回答