【问题标题】:Solr - Adding custom 'non-multivalued' metatagsSolr - 添加自定义“非多值”元标记
【发布时间】:2026-01-22 10:20:02
【问题描述】:

我想为我的每个页面添加自定义元标记以确定其类别,以便稍后在搜索期间进行分组。

因此在我的“schema.xml”中,这是我对元标记的定义:

<field name="metatag.description" type="text_general" stored="true" indexed="true" multiValued="false"/>

但是,存储的值仍然是多值的,因此无法分组。 尝试重新启动 Solr 无济于事。任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: solr


    【解决方案1】:

    首先 - 如果您将已被 multiValued 的字段更改为不再是 multiValued,则您必须清理索引并重新索引,因为内容仍作为多值字段存储在索引中(并且可以包含已经有多个值了)。

    第二 - 据我所知,您不想使用 text_general 字段进行分组,因为该字段已被标记和处理(意味着它被分成多个标记)。使用字符串字段,以便字段保持原样。

    【讨论】:

    • 嗨@MatsLindh。我只是尝试使用新核心创建,并且使用字符串作为字段类型也无济于事。
    • 你已经明确地将 multiValued 设置为 false?模式浏览器也显示这个?您使用的是托管模式还是经典模式工厂?
    • 是的,明确声明 multiValued 为 false。但是模式浏览器会显示 MultiValued 仍然是真的。我正在使用 schema.xml 文件。它应该在 managed-schema.xml 中吗?
    • 如果存在托管架构文件,则架构是]通过 API 管理的](cwiki.apache.org/confluence/display/solr/Schema+API),而不是在 schema.xml 文件中。虽然不建议直接编辑托管模式文件,但人们已经停止了 Solr 并这样做了(如果您不使用 zookeeper 和云) - 但首选使用 API。
    最近更新 更多