Lucene搜索获得文本字段的奇怪方面结果

w1e3prcc  于 2022-11-07  发布在  Lucene
关注(0)|答案(1)|浏览(175)

我正在使用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)

我有许多IDIEnumerable<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\08\u0010\0\0\0\0\0
在Sitecore中,“作物热量单位”字段的值为“2075”和“2200”。

y1aodyip

y1aodyip1#

在Lucene中,每个数值都被索引为trie结构,其中每个术语都被逻辑地分配到越来越大的预定义括号中,这些括号只是值的较低精度表示。
因此,简单的解决方案是将 CropHeatUnits 字段定义的int更改为string,并将其从fieldmap中删除。然后,您的查询和facet应该可以正常工作。如果您希望将 CropHeatUnits 值用作整数,则需要在从Lucene中检索后将其string值转换为integer

相关问题