Jakes-基于ES的音乐搜索引擎.key.PDF

Jakes-基于ES的音乐搜索引擎.key.PDF

基于ES的⾳乐搜索引擎 Jakes 2017年11⽉25 ⽇ 酷狗⾳乐搜索引擎架构变迁 ⽬录 ⽬录 ⽬录 构建⾳乐搜索引擎经验之谈 架构变迁 伪集群 真集群 ES + redis集群 中⽂分词器 中⽂分词器 • 开源中⽂分词器(IK、ansj、jcseg 、HanLP、word 、jieba等) • 如何选择? • 为什么要⾃⼰写?为了KPI? • “不污”中⽂分词器 • 具有核⼼、繁简体、标点符号、排除、替换词典 • ⽀持混合字符分词(英⽂词组、中英⽂、中⽂数字、数字英⽂、标点⾮标点等) • 基于MMSEG算法,含有多种分词策略 • ⽀持词典热更新 索引篇 索引篇 • 索引流程 索引篇 • 优化及注意点 • 索引名加上时间戳 • mappings写在⽂件,⽅便修改 • number_of_shards: 1、number_of_replicas: 0、refresh_interval: “0s” • 排序、聚合字段采⽤doc_values • 根据需求应⽤不同分词策略 • 采⽤⽣产者消费者⽅式批量索引数据 • 优化索引段为1 • 统计索引量,防⽌建空索引 • 恢复副本数(R = N / P - 1),修改refresh_interval • 关闭索引以作备份 • 涉及到索引状态变更的操作⼀定要有重试 搜索篇 搜索篇 • 常⽤query • multi_match query • bool query • function_score query • nested query • 常⽤filter • bool filter • term filter • range filter • 插件 搜索篇 • 优化及注意点 • query vs filter • query计算得分,filter不计算得分 • filter可以缓存结果,query “不⾏” (当search_type=countquery_cache=true时,可以缓存hits.total, aggregations, suggestions,当分⽚刷新时,缓存失效) • filtered query vs post filter • filtered query影响aggretations 和 hits • post filter只影响hits • query写成⽂件,⽅便修改 • 限制最⼤from 、size 、搜索关键词⻓度 • 排序调优,要善⽤_explain ,各种query搭配不同分词⽅式 其他 其他⼩技巧 • 增量和全量分开⽅法索引,以免增量堆积 • index.mapper.dynamic: false 禁⽌⾃动⽣成mappings • 优化⼩索引段为1个 QA Thanks 就是歌多

文档评论(0)

1亿VIP精品文档

相关文档