2016-05-23 96 views
0

我有两个不同类型的缓存里面Infinispan缓存联合查询

想对他们做一个分页查询。所以想传递一个排序/过滤值并从两个缓存中获取内容?

有没有办法如何做到这一点,而无需手动编写合并和分页?

目前我只能做这样的事情:

val queryFactory = Search.getQueryFactory(cache)  
queryFactory.from(Class.getClass) 

val searchManager = Search.getSearchManager(cache) 
searchManager.buildQueryBuilderForClass(Class.getClass).get() 

回答

1

在多个搜索缓存,不支持,也没有支持它的具体计划。查询DSL和直接Lucene API都不允许。解决方法是自己合并搜索结果。

这样做的主要原因是每个缓存都有自己独立的一组索引。因此,跨缓存的搜索必须从多个索引中检索数据并执行合并,这在目前的实现中效率不高,因此目前由于技术原因而被忽略。