【发布时间】:2012-03-23 18:41:21
【问题描述】:
我不确定这是 JSON.Net 问题还是 SolrNet 问题,这就是为什么我同时标记它的原因。
我正在使用 SolrNet,目前通过返回 solr.Query() 返回的对象的 JsonNetResult 编码来处理来自 MVC 调用的所有页面交互。我现在正在尝试使用 Facet,但在我的结果中没有看到 Facet 信息。
我有一个像下面这样的 MVC 控制器方法。 (JsonNetResult 类似于普通的 JsonResult,但使用 JSON.Net 编码 JSON,described here。)
public JsonNetResult Index(string keywords)
{
JsonNetResult jsonNetResult = new JsonNetResult();
var documents = solr.Query(new SolrQuery(keywords), new QueryOptions
{
Rows = 10,
Facet = new FacetParameters
{
Queries = new[] {new SolrFacetFieldQuery("system")}
}
});
jsonNetResult.Formatting = Formatting.Indented;
jsonNetResult.Data = documents;
return jsonNetResult;
}
我希望在 JsonNetResult 中看到编码为 JSON 的分面信息,但它包含的只是与我的查询匹配的文档的哈希数组。我是否遗漏了 SolrNet 响应对象的工作方式,或者我真的需要自己解析对象,并创建 JSON.Net 可以用来对与我的查询相关的所有信息进行编码的东西?
仅供参考,我尝试在 MVC 中使用标准的 JsonResult,结果是一样的。另外,我使用 SolrNet 而不仅仅是直接调用 Solr 并请求 JSON 的原因是因为我们不想将 Solr 搜索引擎 Web 界面直接暴露给用户。
【问题讨论】: