【问题标题】:dynamic fieldType assignments in solrsolr 中的动态字段类型分配
【发布时间】:2014-06-11 12:58:41
【问题描述】:

我有一个场景,我想将传入的文档字段动态分配给两个不同的 solr 架构字段类型。一个 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_ 的所有字段映射到“exactMatch”的字段类型,并且需要将名称为 _BAR_TEXT_ 的所有字段映射到“全文”的字段类型.我希望可能有一种方法 当文档被索引时,这是动态的。

【问题讨论】:

    标签: solr solr4


    【解决方案1】:

    您是否尝试过使用 solr 动态字段?

    https://cwiki.apache.org/confluence/display/solr/Dynamic+Fields

    基本上它看起来像这样:

    显然,您需要为这些类型创建自己的定义(或使用现有的定义)。

    【讨论】:

    • 我在我的问题中指定 dynamicField 类型将无法识别这些字段。
    【解决方案2】:

    目前无法创建像*_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”、“BAR_TEXT_WIDGET_3”等。

    像这样:

    <dynamicField name="BAR_TEXT_*" type="fulltext" />
    <dynamicField name="BAR_SELECT_*" type="exactMatch" />
    

    【讨论】:

    • 感谢您的回复,但这并没有真正的帮助。我知道动态字段将不起作用。这就是我发布这个问题的原因。我也了解如何使动态领域发挥作用。但是,我的情况是我无法按照您的建议更改字段名称。正如我在上面写的:“这些字段将遵循可预测的模式,但使用 dynamicField 类型无法识别该模式,并且不会提前知道。” 所以我问是否有解决方案给定我在问题中列出的参数。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 2017-07-03
    相关资源
    最近更新 更多