如何在Aerospike中获得与正则表达式匹配的所有记录?

jmv*_*llt 2 nosql aerospike

我有一百万条记录.我想检索匹配相同模式的所有记录.

例如,我可能有:

id=4444?mode=mode1?fieldA=abc
id=4444?mode=mode1?fieldA=azerty
id=4444?mode=mode1?fieldA=qwerty
id=4444?mode=mode1?fieldA=foo
id=4444?mode=mode1?fieldA=bar
Run Code Online (Sandbox Code Playgroud)

是否有可能在不事先知道fieldA?的值的情况下进行查询以获取所有上述记录?正则表达式中的这样的东西:

    id=4444?mode=mode1?fieldA=[\w]*
Run Code Online (Sandbox Code Playgroud)

谢谢你的时间.

小智 5

是的,可以做到.您需要首先通过二级索引进行查询,然后首先将结果集缩小到可管理的大小,然后使用Lua编写过滤器,过滤掉您不想要的过滤器.此过滤器可以使用您要匹配的正则表达式(动态传入)并仅返回匹配的记录.

虽然这可行,但它不会像Aerospike中的键值操作一样高效.在将其投入生产之前,您肯定希望对此类解决方案进行基准测试.