当前位置: 首页 > 知识库问答 >
问题:

Hazelcast查询基于键集和谓词获取Map

程卓君
2023-03-14

我有一个淡褐色IMAP看起来像

IMAP = key -> val1, val2, val3

在val1,val2上建立索引我正在尝试获取say键-

hzObj.getMap("testMap").getAll(keys.toSet.asJava)
which returns the key->val1, val2, val3

需要帮助写谓词,说只返回键-


共有2个答案

容学林
2023-03-14

如果我正确理解了您的用例,您可以使用投影来剥离查询的结果对象,以减少冗余的网络流量。

夏青青
2023-03-14

@夜间活动,请参见下面的用法示例:

imap.project(Projections.single属性("val2"), Predicates.in("__key", new String[]{"key1, key2"}));

一个重要的注意事项是,还需要在键上定义索引。

由于这将使用查询线程,因此也可以使用imap。改为getAll(设置关键点)

 类似资料:
  • TestValue类是简单的pojo 这只是本地env,所有的东西都在我的机器上运行,单个Hazelcast实例。我的代码与官方文档中的示例相匹配。 Hazelcast版本:4.2.1

  • 我是Hazelcast的新手-评估和原型设计,看看它是否适合我们的分布式内存缓存需求。其中一个要求是能够使用通配符在给定地图中搜索关键字。通过查看IMap文档,可以使用keySet(谓词谓词)。但我不知道如何使用谓词,在给定通配符字符串的情况下,返回一个包含所有匹配键的键集。举个例子会很有帮助。 我的代码片段。这是客户端。 谢谢

  • 我正在使用spring-data、QueryDSL和MySQL。 返回所有包含姓名的员工(在first_name和last_name中),并从该结果中获得的证书在2014年12月22日至2015年12月22日之间 我尝试了它,但无法获得如何以QueryDSL方式迭代每个员工的每个证书并返回员工列表。 您的回应将非常感谢!!

  • 我正在使用Hazelcast3.6IMap分布式存储大量数据(我已经在1B个项目上进行了测试)。我想通过键加入2个IMap实例,但似乎没有任何内置的功能来做到这一点。因此,如果键相等,我使用将这些映射的条目存储在同一个节点中,然后在claster的每个成员上使用第一个映射的。在此之后,我尝试从同一节点上的第二个映射中获取值,以避免网络传输谓词键。但似乎不在同一节点上执行此操作。有人已经有同样的问题

  • 谁能告诉我如何用Hazelcast谓词“in”子句吗。我想使用以下内容, 我想将值作为值的ArrayList传递。但是它抛出错误,因为它期望实现可比的对象。对此有任何解决方法吗?

  • 环境是Java、Spring-boot、Hibernat、QueryDSL、MySQL。 我有表结构 艾碧索 更新 为了澄清起见,支持UI视图的DTO包含“casename”属性。它是在将域对象转换为DTO时在服务层创建的: