在Solr的schema.xml中定义Sitecore字段

时间:2014-07-21 22:00:36

标签: asp.net solr sitecore

我的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,它就像魅力一样。我知道我只是在某个地方错过了一步。有人可以指出我错过了哪一步吗?谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

因此,您可能需要使用:

  

&lt; field name =“CountryName_t”type =“alphaOnlySort”indexed =“true”stored =“true”/&gt;

记得以后重新索引。