cassandra 从前端应用程序实时搜索数据库中数据的最佳方法是什么?

50few1ms  于 12个月前  发布在  Cassandra
关注(0)|答案(2)|浏览(123)

我正在使用Flutter-NodeJS-Cassandra编写全栈应用程序。我想添加一个搜索栏,用户可以搜索数据库内的东西,如特定的产品,例如。此外,当用户在搜索栏中输入内容时,还会有一个建议列表(就像我们在许多网站/应用程序或谷歌Map中看到的那样,它建议用户输入的类似位置)。
我不知道什么是最好的方式做到这一点?
1.我是否应该捕获用户在textField中所做的每一个更改,并针对每个更改向数据库进行查询?(每个更改一个查询)。
1.我是否应该先从数据库中读取所有数据,然后在前端应用程序中搜索用户试图查找的内容?(对于所有可用数据仅一个查询)。

smtd7mpg

smtd7mpg1#

你可以做你建议的任何一个,但它将是非常昂贵的查找不完整的单词。除此之外,在Cassandra中,您需要精确的分区键,如果单词不完整,这可能对您没有帮助。例如,如果我的表的分区键是(color),我键入blu并进行搜索,这对我没有任何帮助,因为在基Cassandra中不会出现任何东西。
您可能需要的是一个预测文本库,例如:
https://pypi.org/project/pressagio/
沿着Solr Search或Elastic这样的东西,可以索引你的表并搜索关键字。
考虑到前面的例子,Solr和Elastic允许你使用blu*并找到所有字母blu

相关问题