【问题标题】:Defining a Sitecore Field in Solr's schema.xml在 Solr 的 schema.xml 中定义 Sitecore 字段
【发布时间】:2014-07-22 12:56:14
【问题描述】:

我的 Sitecore 7 实例中的数据模板上有一个名为 CountryName 的自定义文本字段。我已经设置了一个返回该字段的搜索结果项。

    [IndexField("CountryName")]
    public string CountryName { get; set; }

由于我的 Solr schema.xml 中包罗万象的 Sitecore 配置,该字段正在被 Solr 索引。但是,使用默认的分词器会导致对该字段进行排序的调用出现问题并无序排序。我更喜欢使用 alphaOnlySort 字段类型来缓解这个问题。

我尝试将以下两行添加到我的 Solr Schema.xml 文件中,但没有成功:

<field name="CountryName" type="alphaOnlySort" indexed="true" stored="true" />
<dynamicField name="Country*" type="alphaOnlySort" indexed="true" stored="true" />

这没有奏效。如果我将 *_t DynamicField 定义更改为使用 alphaOnlySort,它就像一个魅力。我知道我只是在某个地方错过了一步。有人可以指出我错过了一步吗?谢谢!

【问题讨论】:

    标签: asp.net solr sitecore


    【解决方案1】:

    您需要匹配 SiteCore 发送的字段名称。您可以在 Admin UI 中进行检查,或者直接查询 Solr 索引。

    我不知道 Sitecore,但根据您的描述,它必须在名称中添加 _t 后缀,以确保它们与 dynamicField 定义匹配。

    所以,你可能需要使用:

    记得之后重新索引。

    【讨论】:

    • 非常感谢亚历山大!我遇到的问题确实是字段命名约定,Sitecore 确实在字段名称后面加上了 _t。您编写的定义完全解决了我的问题。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 2015-09-01
    • 2015-10-13
    相关资源
    最近更新 更多