搜索改版做了三个月,用户还在搜不到东西 公司的技术文档站搜索,原来是纯 Elasticsearch BM25。今年 8 月我接手改版,第一版直接换成了向量检索,想着"语义搜索肯定更强"。上线一个月,搜索结果的点击率从 68% 掉到 51%,用户投诉反而变多了。 我把 200 条低点击率的 query
想给搜索加上"语义" 我们的商品搜索一直靠关键词匹配,用户搜"适合送妈妈的礼物"这种长尾 query 基本搜不到,因为标题里没有这几个字。运营天天抱怨转化差。ES 8 增强了 dense_vector 和 kNN 检索,我试着把商品标题做成向量塞进去,让语义相近的也能召回,点击率明显好转。这里把建模
一个 ES 查询,把节点 CPU 打到了 95% 运营后台有个"订单检索"接口,平时挺快,某天加了"按创建时间排序 + 关键词模糊"后,单查询 CPU 占用飙升,集群一个节点到了 95%,其他查询全被拖慢。我用 profile API 抓了执行计划,发现罪魁是把本该放 filter 的条件写进了 q
集群重启后要 40 分钟才能变绿,问题出在分片数 我们用 ES 做商品搜索和日志检索,版本从 7.15 升到 8.0(2022 年 2 月发布,正式用上)。3 月一次故障演练,重启集群后主分片恢复花了 40 分钟才变绿,期间搜索不可用。排查下来,根因是分片数设错了:一个 200 GB 的索引被切成
报错:Result window is too large 运营后台有个"导出全部商品"的功能,前端做成了分页拉取,一页 100 条,用循环一直翻到最后一页。上线当天就炸了,日志里全是这个: org.elasticsearch.ElasticsearchStatusException: Elasti
接手搜索需求:MySQL like 已经撑不住了 七月份产品提了个需求:商品搜索要支持关键词模糊匹配、按分类筛选、按价格排序、还要高亮。我们当时是这么查的: SELECT * FROM t_item WHERE title LIKE CONCAT('%', #{keyword}, '%') AN
1.2 亿条订单导入 ES,按当时的速度要跑 66 小时 二月初接了个活:把 MySQL 里 2017 年之后的历史订单同步到 Elasticsearch,给客服系统做多条件检索。总共 1.24 亿条。 我先用原来的同步代码跑了半小时,用 _cat/indices 数了一下文档数增长:单机 470