Skip to content

01 倒排索引设计

zhan yeye edited this page Feb 17, 2025 · 9 revisions

搜索引擎分类

  • 通用搜索引擎: 用搜索引擎是面向广大用户,提供全面信息检索的工具。例如:Google、Bing、Yahoo等。
  • 垂直搜索引擎: 垂直搜索引擎专注于特定领域或主题的信息检索。例如:携程(旅游)、自如(房地产)、知网(文献)

垂直搜索引擎的搜索词比较简单, 不能太长, 不做复杂的理解,将各种复杂的限制条件通过筛选条件的形式提供出来.

倒排索引

image

倒排索引的实现方案

倒排索引本质上就是 key-value, 这种 key-value 如何存储呢?

  • redis: value 用 List 类型
  • map: value 用切片需要并发安全

如果map, 如何确保并发安全呢?

  1. sync.Map
  2. ConcurrentHashMap, 分段map, 各段单独加锁

倒排索引KEY的前缀

用前缀区分关键词所属的类别/字段 image

倒排索引组合多个field

将常见的筛选项放到key中, 变成一个组合key image

Clone this wiki locally