【问题标题】:SolrNet facets are being returned from Solr but not through the SolrNet clientSolrNet facets 从 Solr 返回,但不是通过 SolrNet 客户端
【发布时间】:2018-05-04 18:48:42
【问题描述】:

我正在使用此代码查询 Solr,我可以看到从 Solr 返回的构面,但由于某种原因它们没有通过。

public class HomeController : Controller
{
    private readonly ISolrReadOnlyOperations<Product> _solr;

    public HomeController(ISolrReadOnlyOperations<Product> solr)
    {
        _solr = solr;
    }

    public ActionResult Index()
    {
        var queryOptions = new QueryOptions()
        {
            Rows = 5,
            Facet = new FacetParameters
            {
                Queries = new[] { new SolrFacetFieldQuery("brand") }
            }
        };

        SolrQueryByField query = new SolrQueryByField("category", "phones-tablets/mobile-phones");
        SolrQueryResults<Product> results = _solr.Query(query, queryOptions);

        return View();
    }

}

上面的代码最终生成了这个url http://localhost:8983/solr/new_core/select?q=category%3a(phones%5c-tablets%5c%2fmobile%5c-phones)&rows=5&facet=true&facet.field=brand&version=2.2&wt=xml

当我粘贴 URL 时,我可以按预期看到构面部分。但是 results.FacetQueries.Count 为零。我错过了什么吗?

【问题讨论】:

  • 如果在查询中设置facet.mincount会发生什么?
  • 我查看了错误的属性 (results.FacetQueries),要查看的是 results.FacetFields

标签: solr solrnet


【解决方案1】:

FacetQueries 使用 for returning the resultexplicit facet queries。您正在执行常规刻面。可以通过results.FacetFields 访问该结果。来自the documentation

var r = solr.Query(...);

foreach (var facet in r.FacetFields["category"]) {
  Console.WriteLine("{0}: {1}", facet.Key, facet.Value);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多