我正在使用Flutter-NodeJS-Cassandra编写全栈应用程序。我想添加一个搜索栏,用户可以搜索数据库内的东西,如特定的产品,例如。此外,当用户在搜索栏中输入内容时,还会有一个建议列表(就像我们在许多网站/应用程序或谷歌Map中看到的那样,它建议用户输入的类似位置)。
我不知道什么是最好的方式做到这一点?
1.我是否应该捕获用户在textField
中所做的每一个更改,并针对每个更改向数据库进行查询?(每个更改一个查询)。
1.我是否应该先从数据库中读取所有数据,然后在前端应用程序中搜索用户试图查找的内容?(对于所有可用数据仅一个查询)。
2条答案
按热度按时间smtd7mpg1#
你可以做你建议的任何一个,但它将是非常昂贵的查找不完整的单词。除此之外,在Cassandra中,您需要精确的分区键,如果单词不完整,这可能对您没有帮助。例如,如果我的表的分区键是(color),我键入
blu
并进行搜索,这对我没有任何帮助,因为在基Cassandra中不会出现任何东西。您可能需要的是一个预测文本库,例如:
https://pypi.org/project/pressagio/
沿着Solr Search或Elastic这样的东西,可以索引你的表并搜索关键字。
考虑到前面的例子,Solr和Elastic允许你使用
blu*
并找到所有字母blu
。r1zhe5dt2#
您也可以使用DSE Search。参见this example。