我有一个场景,我想将传入的文档字段动态分配给两个不同的solr架构fieldTypes。一个fieldType将是一个完全匹配的' fieldType而另一个将是'全文'字段类型。这些字段将遵循可预测的模式,但无法使用dynamicField类型识别模式,并且不会提前知道。
以下是我需要能够处理的字段名称的示例:
FOO_BAR_TEXT_1
FOO_BAR_TEXT_2
WIDGET_BAR_TEXT_3
WIDGET_BAR_TEXT_4
-
FOO_BAR_SELECT_1
FOO_BAR_SELECT_2
WIDGET_BAR_SELECT_1
以上字段不会提前定义。我需要将名称为 _BAR_SELECT _ 的所有字段映射到' exactMatch'的fieldType。我需要将名称为 _BAR_TEXT _ 的所有字段映射到&text;'全文字的'。我希望可能有办法 这是在对文档编制索引时动态的。
答案 0 :(得分:0)
您是否尝试过使用solr动态字段?
https://cwiki.apache.org/confluence/display/solr/Dynamic+Fields
基本上它看起来像这样:
显然,您需要为类型制作自己的定义(或使用现有定义)。
答案 1 :(得分:0)
目前无法创建*_BAR_SELECT_*
等字段。
在old solr wiki以及collection1 schema.xml文件中,提到动态字段的限制:
RESTRICTION: the glob-like pattern in the name attribute must have a "*" only at the start or the end.
但是,如果您将名称更改为BAR_SELECT_*
,则可以动态创建字段" BAR_TEXT_FOO_1"," BAR_TEXT_FOO_2",&#34 ; BAR_TEXT_WIDGET_3"等等。
像这样:
<dynamicField name="BAR_TEXT_*" type="fulltext" />
<dynamicField name="BAR_SELECT_*" type="exactMatch" />