如何实现基于多个参数的搜索功能?

Posted

技术标签:

【中文标题】如何实现基于多个参数的搜索功能?【英文标题】:How to implement search feature based on multiple parameters? 【发布时间】:2021-12-26 19:30:21 【问题描述】:

如果我有一个与其他表相关的用户表,并且我想根据用户表列过滤用户(假设要按年龄、姓名、名字、位置、帖子标题进行过滤)不同的表并由用户ID等引用...)。

如果我们根据大量参数过滤用户,使用 mysql 是否仍然是一个好主意?

如果有怎么办?

感谢您的帮助

【问题讨论】:

我认为您将不得不在白板上写下您的设计并使用 RDMS 与 NoSQL 进行优缺点列表。关于根据数据目标选择设计的主题有大量文章。使用 RDMS,您可以实现您的设计,但必须牢记索引结构以及任何存储限制,并添加许多用于搜索的索引。使用 NoSQL,您必须精心设计文档结构,甚至可能对其进行版本化,因为您的数据可能会被高度反规范化,但至少您的所有搜索条件都将集中在一个地方。 感谢您的回复,我确信 MySQL 是最合适的,但我很好奇像 Facebook 这样的大型科技公司是如何做到的?当我们搜索某些内容时,我们会从帖子、视频、图像、用户等中获得建议……几乎所有内容。对于 SQL 数据库,我们是否有多个 SQL 查询几乎无处不在? 【参考方案1】:

我认为你应该研究一下 GraphQL,了解它是什么以及它背后的想法。 GraphQL 类似于您所询问的概念,由 Facebook 开发,并且可以与 MySQL 等 RDMS 数据库分层。以下是一些帮助您入门的文档:https://www.serverless.com/blog/graphql-api-mysql-postgres-aurora

【讨论】:

谢谢,我会检查的

以上是关于如何实现基于多个参数的搜索功能?的主要内容,如果未能解决你的问题,请参考以下文章

Java如何实现多选项搜索功能(查询数据库)?

基于es的商品搜索功能实现(上)

技术分享| 基于RTM 实现的呼叫邀请如何添加推送功能?

搜索引擎之全文搜索算法功能实现(基于Lucene)

搜索引擎之全文搜索算法功能实现(基于Lucene)

如何实现基于商圈和地标的位置搜索