是否可以将 SolrNet QueryOptions 转换为 Json 字符串?

Is it possible to convert SolrNet QueryOptions to Json string?

我正在使用以下代码使用 SolrNet 将 solr 请求从我的 Web 应用程序发送到 Solr:

SolrQueryResults<MyClass> results= solrCustomWorker.Query(new SolrQuery(query), options);

选项值如下:

options = new QueryOptions
                        {
                            Rows = pageSize,
                            Start = (pageIndex - 1) * pageSize,
                            FilterQueries = _solrQuery.ToArray(),
                            OrderBy = new[] { new SolrNet.SortOrder("NameCopy", SolrNet.Order.ASC) },
                            Facet = new FacetParameters
                            {
                                Queries = _solr.ToArray(),
                                MinCount = minCount,
                            },
                            Stats = statsParams
                        };

现在我想为此请求添加对象缓存,这样如果正在处理相同的请求,那么它将从缓存中获取值,而不是再次将请求发送到 Solr。

任何人都可以建议我如何在我的缓存键中包含选项值?因为选项有方面、过滤器查询、Extraperms 字段等,这些值是数组格式。

我可以转换 json 字符串中的选项值吗? 然后将其添加到我的键值中。

我有转换使用下面的代码:

 using System.Web.Script.Serialization;  

  //code
 string json = new JavaScriptSerializer().Serialize(options);
 string solrRequestCacheKey = "solrRequestCacheKey-" + query + "-" + json;
 var policy = new CacheItemPolicy();
 SolrQueryResults<MyClass> temp;
 if (CustomCache[solrRequestCacheKey] == null)
  {
     temp = solrCustomWorker.Query(new SolrQuery(query), options);
     CustomCache.Add(solrRequestCacheKey, temp, policy);
  }
  results = (SolrQueryResults<MyClass>)CustomCache[solrRequestCacheKey]; 

使用序列化,我可以成功地将选项值添加到我的缓存键中。