看看似简单搜索的复杂逻辑

平时浏览各个技术社区文章,总觉得技术并没多么深奥,总觉得很多岗位确实都是草台班子,但看了这篇文章了解一个小小搜索框的复杂逻辑才知道什么叫一叶障目

2024-07-24 00:52:00   2025-02-09 10:45:57   产品经理(道)   47 views  

 

平时做做开发觉得搜索没什么大不了,无非就是严格搜索(=)、模糊搜索(like)、以及ES等全文索引。直到今日我才感到这些设计是给一些专业人士的,他首先要了解你的产品品类等等信息,然后去适应你的搜索规则。然而一个好的搜索是人在无意识状态下随意搜索就能得到想要的结果,简单一点解释就是一个傻子都会用,高大上一点解释就是产品道很重要的一句话:Don't make me think !一个搜索框能够有多复杂的逻辑,让我们一起来看。

一、基本的搜索流程

file

二、搜索入口的位置摆放及作用

file

三、搜索方式

file

四、分析器

file

file

file

五、召回

file

六、排序

file

file

七、结果呈现

file

关于一个搜索逻辑功能可能涉及的职位有

  1. 系统架构师(System Architect)

    • 负责整体架构设计,确保系统的可扩展性和高效性。
  2. 后端开发工程师(Backend Developer)

    • 设计和实现搜索查询处理逻辑,包括索引构建、数据检索和结果排序。
  3. 搜索引擎开发工程师(Search Engine Engineer)

    • 专门负责搜索引擎核心部分的逻辑设计,包括索引结构、查询解析和优化算法。
  4. 自然语言处理工程师(NLP Engineer)

    • 负责设计和实现语义分析算法,提高搜索系统对自然语言的理解能力。
  5. 数据科学家(Data Scientist)

    • 设计和优化用于提升搜索结果相关性的机器学习模型和数据处理方法。
  6. 机器学习工程师(Machine Learning Engineer)

    • 训练和部署语义分析和推荐系统相关的机器学习模型。
  7. 计算语言学家(Computational Linguist)

    • 提供语言学理论支持,设计更有效的语言处理算法。
  8. 数据库管理员(Database Administrator, DBA)

    • 设计数据库结构和索引,确保数据存储和检索的高效性。
  9. 知识图谱专家(Knowledge Graph Expert)

    • 设计和维护知识图谱,用于语义关联和推理,增强搜索系统的理解能力。
  10. 前端开发工程师(Frontend Developer)

    • 提供前端需求和约束条件,确保设计的逻辑能够在前端有效实现和展示。
  11. 产品经理(Product Manager)

    • 定义搜索功能的需求和目标,确保逻辑设计方向符合用户需求和产品愿景。
  12. 用户体验设计师(UX Designer)

    • 提供用户交互方面的需求和建议,确保逻辑设计的用户流程简洁高效。
  13. 质量保证工程师(QA Engineer)

    • 测试搜索逻辑模块,确保其准确性、可靠性和性能,发现并修复潜在的错误和缺陷。

这些人员在搜索功能的逻辑设计过程中各司其职,协同工作,确保最终的设计合理、高效,并能够满足用户需求和系统性能要求。