Solr返回不在结果上的方面

0lvr5msh  于 11个月前  发布在  Solr
关注(0)|答案(1)|浏览(178)

我得到了相同的切面(基本上是该属性的任何项目上存在的所有值的完整列表)为每次搜索。我在Traits的多列表字段上分面,无论我如何限制我的搜索,我总是得到所有现有的Traits,而不仅仅是实际上在这些结果上的Traits。事实上,即使我修改我的搜索,使我得到NO结果,我仍然得到了所有的属性。为什么它给了我一些不在结果上的方面?

using (var searchContext = index.CreateSearchContext())
{
    var predicate = PredicateBuilder.True<ContentTypeSearchResultItem>();
    var contentType = Constants.Taxonomy.Product;

    predicate = predicate.And(x => x.ContentType.Contains(contentType));
    predicate = predicate.And(x => x.TemplateId.Guid == templateId);

    var query = searchContext.GetQueryable<ContentTypeSearchResultItem>().Filter(predicate);
    query = query
        .FacetOn(x => x.Traits)
            
    var results = query.GetResults();

    Sitecore.Diagnostics.Log.Info("Results:", this);

    var items = results.Hits.Select(x => x.Document);
    foreach (var item in items)
    {
        Sitecore.Diagnostics.Log.Info($"{item.Path}", this);
    }

    Sitecore.Diagnostics.Log.Info("Trait Facets:",this);

    var traits = results.Facets.Categories.FirstOrDefault(x => x.Name.ToLower().Contains("traits"));

    foreach (var trait in traits.Values)
    {
        Sitecore.Diagnostics.Log.Info($"{trait.Name}", this);
    }

    return results.Facets.Categories.ToList();
}

字符串
我添加了一些日志记录,使用模板ID predicate ,我实际上得到零个结果,但仍然得到完整的facet列表,并为每个作物类型搜索得到,这是日志记录输出:
44312 15:13:01 INFO结果:[NO RESULTS LISTED] 44312 15:13:01 INFO特质方面:44312 15:13:01 INFO 26d3faa9d8e04b5da5a3da77d69a2b51 44312 15:13:01信息54aa71076cf442dfa37c7c5abf3ef0ad 44312 15:13:01 INFO 54c4f97f95c4498e8ca3870687fc6995 44312 15:13:01信息5c3db73e0cd4422abf2e58a431530a4e 44312 15:13:01 INFO 8d4fe44e1523471da89981207895553c 44312 15:13:01信息95f80ed476594995b7878ab4eefa8d98 44312 15:13:01信息a2fc835c202e488991005144af7f2bef 44312 15:13:01信息c91769f140524b8eac5486423cfdb4f3 44312 15:13:01信息d963303d6c284d2db7b1b78a69c38a33

gc0ot86w

gc0ot86w1#

Solr有一个可选的minimumResultCount,它决定了需要多少个结果才能显示该facet值。它默认为零,所以如果你只想要结果上的facet(例如minimumResultCount为1),请将其添加到FacetOn:

query = query.FacetOn(x => x.Traits, 1)

字符串

相关问题