【问题标题】:Caching Facet Queries缓存构面查询
【发布时间】:2013-09-19 18:24:25
【问题描述】:

刚刚发现一个与缓存在 RavenDB 中的方面查询有关的错误。

我找到了设置积极缓存但仅针对给定会话的代码行。在此会话中,代码似乎只获取了一个“FacetSetup”文档,而不是对构面执行查询。但是,我已经确认,当给定的代码行被注释掉时,我会收到当前的方面计数,当我恢复注释并进行更新时,我会收到陈旧的方面计数。

我的问题是:这行实际上告诉 Raven 缓存什么?

    /// <summary>
    /// Gets all the facet names from the main facet document.
    /// That way, we know all the possible facets to query over.
    /// We will execute a facet query for each facet in the FacetSetup
    /// </summary>
    private IEnumerable<string> GetFacetNamesFromFacetSetup(IDocumentStore store, string facetDocumentName)
    {
        IList<string> facetFromDocument = new List<string>();
        using (IDocumentSession docSession = store.OpenSession())
        {
            //The line below here!!    
            docSession.Advanced.DocumentStore.AggressivelyCacheFor(TimeSpan.FromMinutes(30));
            FacetSetup facetSetup = docSession.Load<FacetSetup>(facetDocumentName);
            foreach (Facet facet in facetSetup.Facets)
            {
                facetFromDocument.Add(facet.Name);
            }
        }
        return facetFromDocument;
    }

【问题讨论】:

    标签: ravendb faceted-search


    【解决方案1】:

    AggressivelyCacheFor 对于文档存储是全局的。 它返回一个 IDisposable。 在您释放它之前,所有操作都将被急切地缓存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-25
      • 2010-09-07
      • 2011-09-01
      • 2016-03-22
      • 2012-12-01
      相关资源
      最近更新 更多