我正在使用Sitecore和Lucene,我尝试对一个整型字段进行facet,这样我就可以获得该字段的所有现有值。我有以下搜索结果类,其中包含该字段的定义:
public class ContentTypeSearchResultItem : Sitecore.ContentSearch.SearchTypes.SearchResultItem
{
[Sitecore.ContentSearch.IndexField("crop_heat_units")]
public int CropHeatUnits { get; set; }
}
在我查询中,我
query = query.FacetOn.FacetOn(x => x.CropHeatUnits)
我有许多ID
或IEnumerable<Guid>
类型的facet,这些facet的工作情况和我预期的一样,但是crop_heat_units
字符串facet给我的结果很奇怪,比如chufacet.Values[0].Name = \u0001\0\0\0\0\0\0\0\u000e\b
。其他一些值是@\b\0\0\0\0
和8\u0010\0\0\0\0\0
。
在Sitecore中,“作物热量单位”字段的值为“2075”和“2200”。
1条答案
按热度按时间y1aodyip1#
在Lucene中,每个数值都被索引为trie结构,其中每个术语都被逻辑地分配到越来越大的预定义括号中,这些括号只是值的较低精度表示。
因此,简单的解决方案是将 CropHeatUnits 字段定义的
int
更改为string
,并将其从fieldmap中删除。然后,您的查询和facet应该可以正常工作。如果您希望将 CropHeatUnits 值用作整数,则需要在从Lucene中检索后将其string
值转换为integer
。