0

如何在 NHibernate.Search 中使用二级缓存?

我尝试在 FullTextQuery 上启用 SetCacheable,但它不起作用。

        var session = Search.CreateFullTextSession(database.Session);

        session.CacheMode = CacheMode.Normal;

        var textQuery = session.CreateFullTextQuery(query, new[] { typeof(Job) });

        textQuery.SetCacheable(true);
        textQuery.SetCacheRegion("Job");

        var jobs = textQuery.List<Job>();

        return jobs;

对于缓存的所有其他标准查询,它运行良好,但对于 FullTextQueries,它没有,NHibernate.Search 仍然访问我的数据库。

请注意,NHibernate.Search 生成的查询是SELECT ... WHERE EntityId IN (Id1,Id2,Id3,...)

4

1 回答 1

2

你确定你的实体在二级缓存中吗?通常,您必须在事务中工作和查询才能使二级缓存执行任何操作。

于 2010-02-21T06:59:33.060 回答