用于查询以获取所有用户名的cassandra表结构

gg58donl  于 2021-06-09  发布在  Cassandra
关注(0)|答案(1)|浏览(391)

在我的cassandra数据库中,我有一个包含用户的表,我需要一个函数来按用户的唯一用户名搜索用户。为此,我需要从user表中查询所有用户名,以便在服务器端对它们进行筛选,因为对于“nark”的输入,我还应该找到用户名“mark”、“narkis”等等,所以我不能只将用户名用作分区键并搜索确切的值。
如果我把它们都放在同一个分区中,就会产生一个热分区。如果我将它们分布在多个分区上,我必须搜索所有分区。
如何为数百万用户高效地查询?有没有一种方法可以在不查询所有用户名的情况下进行这样的搜索?
谢谢你的帮助!

3qpi33ja

3qpi33ja1#

cassandra天生就不适合这种用例。即使广泛使用二级索引,在这里也没有什么帮助。
然而,如果你已经在c上拥有了所有的数据来实现这样的功能,那么你基本上需要一个索引框架,最广泛使用的是apache solr(基于lucene构建)。我看到solr在c上的模糊搜索中发挥了神奇的作用,尽管没有什么比elasticsearch更适合这个用例。

相关问题