我有一个场景,我希望动态地将传入的文档字段分配给两个不同的solr模式fieldTypes。一个fieldType将是‘完全匹配’的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_的字段映射到fieldType of 'exactMatch‘,并且需要将所有具有名称_BAR_TEXT__的字段映射到’_BAR_TEXT__‘的fieldType。当文档被索引时,我希望有一种动态地完成这个任务的方法。
发布于 2014-04-25 22:58:58
您试过使用solr动态字段吗?
https://cwiki.apache.org/confluence/display/solr/Dynamic+Fields
基本上看起来是这样的:
显然,您需要为这些类型创建自己的定义(或使用现有的定义)。
发布于 2014-04-26 18:50:30
目前不可能创建像*_BAR_SELECT_*这样的字段。
在旧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”、"BAR_TEXT_WIDGET_3“等等。
如下所示:
<dynamicField name="BAR_TEXT_*" type="fulltext" />
<dynamicField name="BAR_SELECT_*" type="exactMatch" />https://stackoverflow.com/questions/23299434
复制相似问题