solr中的动态fieldType赋值

时间:2014-04-25 17:22:34

标签: solr solr4

我有一个场景,我想将传入的文档字段动态分配给两个不同的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;'全文字的'。我希望可能有办法 这是在对文档编制索引时动态的。

2 个答案:

答案 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" />