用途:设计一个跨多机、按相关性排序的全文检索系统。适用于文本语料(文档、商品、日志、消息)上的自由词查询,需要排序、高亮、分面或输入联想;也适用于 WHERE col LIKE 或全表扫描已成读瓶颈、需要模糊/部分匹配而 B 树索引无法满足的场景。不适用:按已知主键取数或固定过滤(用主库索引),语料很小(几千行,用进程内过滤或数据库内置全文索引),搜索不应作为系统记录源,只是可重建的派生副本。
主要能力与流程:数据源产生文档变更,经索引管线做转换与分析,倒排索引存 term→文档 posting,查询路径负责匹配与排序。索引构建方式分批量重建与近实时增量;排序模型分布尔/过滤、TF-IDF/BM25、词法加信号混合;自动补全可用内存前缀 trie/FST 或主索引内的 edge-n-gram。分布式上按分片切分索引、每分片配副本,提升容量与读吞吐及容错。
使用方式:先明确语料规模与增长、查询 QPS 与形态、索引新鲜度、相关性要求、写入速率;再按权衡表选择构建模式、排序模型与补全结构;设定分片数(索引字节÷目标分片大小)、副本数(读 QPS 与高可用)、分析器/分词器与刷新间隔;按压力场景(扇出尾延迟、索引与查询争用、热点分片、深分页、管线积压、重启冷缓存)逐项确认缓解措施;用数字核对规格。默认通用方案(Elasticsearch/OpenSearch、Lucene、Solr、自托管),用户指定云厂商时可查对应 provider 参考文件,无文件则用通用方案。可用插件内架构图技能绘制源→索引管线→倒排索引(分片加副本)→查询/排序路径。
限制与注意:不要把搜索引擎当作主存或事务写入;不要过度分片;不要用深 from/offset 分页,改用 search_after 游标;大批量重建需限流并避开高峰期;分析器契约一旦变更需重建索引;索引滞后与查询延迟需分别监控。具体云厂商映射、配额、价格与服务细节,资料未提供。