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

使用谓词在Hazelcast中搜索键集

南门意蕴
2023-03-14

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

我的代码片段。这是客户端

IMap<String, String> mapTest1 = client.getMap("testMap");

mapTest1.put( "testKey1", "This is a Test" );
mapTest1.put( "testKey2", "This value has a long key name" );
mapTest1.put( "key3", "Another value" );
// Need a wild card search on the map, such that all keys with "%test%" will be returned.

谢谢

共有1个答案

刘翔宇
2023-03-14

如果我正确理解了您的请求,这应该可以做到:

public class Test {

    public static void main(String[] args) {
        HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance();

        IMap<String, String> map = hazelcastInstance.getMap("someMap");
        Collection<String> keys = map.keySet(
            new RegexPredicate("[a-z].*[a-z0-9]"));

        System.out.println(keys);
     }

     public static class RegexPredicate implements Predicate<String, String> {

        private String regex;
        private transient Pattern pattern;

        public RegexPredicate(String regex) {
            this.regex = regex;
        }

        @Override
        public boolean apply(Map.Entry<String, String> mapEntry) {
            if (pattern == null) {
                 pattern = Pattern.compile(regex);
            }
            Matcher matcher = pattern.matcher(mapEntry.getKey());
            return matcher.matches();
        }
    }
}
 类似资料:
  • 谁能告诉我如何用Hazelcast谓词“in”子句吗。我想使用以下内容, 我想将值作为值的ArrayList传递。但是它抛出错误,因为它期望实现可比的对象。对此有任何解决方法吗?

  • 搜索关键字推荐 调用地址 http://api.bilibili.cn/suggest 参数 字段 必选 类型 说明 term true string 关键字 sponly false int 只显示专题 返回 这个返回非常奇葩,没有数组装数据,我就随便写一下,看不懂自己调用分析结果 返回值字段 字段类型 字段说明 {x} string 第 x 个关键词建议

  • 在hazelcast IMap中查找谓词结果大小的最佳方法是什么? MapProxyImpl中不支持直接大小。java和size()将根据返回的集合进行计算,在这种情况下,这是不需要的。 你有什么建议吗? 谢谢

  • 我正在尝试构建一个方法,删除具有非空属性的条目,但我一直在谓词中失败,我不知道如何正确实现谓词,因为hazelcast没有将“Not NULL”或“IS NULL”作为where子句任何想法如何在映射中找到我需要搜索以删除它们的值? 方法 主类响应SerializablePlus

  • 我有一个淡褐色IMAP看起来像 在val1,val2上建立索引我正在尝试获取say

  • 问题内容: 我正在为我的第一个应用程序浏览本教程(学习Swift):http : //www.appcoda.com/search-bar-tutorial- ios7/ 我被困在这部分(Objective-C代码): 谁能建议如何在Swift中为NSPredicate创建等效项? 问题答案: 这实际上只是语法切换。好,所以我们有这个方法调用: 在Swift中,构造函数跳过“ blahWith…”