Java 是否建议使用aerospike在某些场地进行过滤

Java 是否建议使用aerospike在某些场地进行过滤,java,filtering,query-optimization,aerospike,secondary-indexes,Java,Filtering,Query Optimization,Aerospike,Secondary Indexes,我有大约200万条记录,每条记录有10-12个字段(大部分是字符串)。现在我想根据一些字段过滤记录。是否建议使用二级索引或其他更好的选项进行此操作?另外,获取所有记录/仅获取密钥(应用过滤器后)需要多长时间 提前感谢。您可以使用谓词筛选器进行扫描-这是一种非常通用的方法(您甚至可以使用正则表达式)或二级索引查询,它只支持字符串上的相等筛选器 扫描更加可靠,并且在下一个即将发布的版本(2020年3月/4月)中,在管理其进度方面会更好。扫描确实需要先从磁盘读取所有记录,然后应用过滤器 SI将更快,因

我有大约200万条记录,每条记录有10-12个字段(大部分是字符串)。现在我想根据一些字段过滤记录。是否建议使用二级索引或其他更好的选项进行此操作?另外,获取所有记录/仅获取密钥(应用过滤器后)需要多长时间


提前感谢。

您可以使用谓词筛选器进行扫描-这是一种非常通用的方法(您甚至可以使用正则表达式)或二级索引查询,它只支持字符串上的相等筛选器

扫描更加可靠,并且在下一个即将发布的版本(2020年3月/4月)中,在管理其进度方面会更好。扫描确实需要先从磁盘读取所有记录,然后应用过滤器

SI将更快,因为您在从磁盘获取记录之前正在进行筛选(内存中的二级索引),但如果基础群集节点不稳定,即在SI查询过程中丢失或添加节点,则可靠性较低。查询在所有集群节点上并行运行,并将结果以不特定的顺序传回客户端。您可以通过使用“failOnClusterChange”选项并在集群稳定时重新启动来缓解这种情况。(扫描也有相同的选项可用。)


哪个更好?针对您的具体问题进行A/B测试

您可以使用谓词过滤器进行扫描-这是一种非常通用的方法(您甚至可以使用regex)或二级索引查询,二级索引查询只支持字符串上的相等过滤器

扫描更加可靠,并且在下一个即将发布的版本(2020年3月/4月)中,在管理其进度方面会更好。扫描确实需要先从磁盘读取所有记录,然后应用过滤器

SI将更快,因为您在从磁盘获取记录之前正在进行筛选(内存中的二级索引),但如果基础群集节点不稳定,即在SI查询过程中丢失或添加节点,则可靠性较低。查询在所有集群节点上并行运行,并将结果以不特定的顺序传回客户端。您可以通过使用“failOnClusterChange”选项并在集群稳定时重新启动来缓解这种情况。(扫描也有相同的选项可用。)

哪个更好?针对您的具体问题进行A/B测试