201909-09 elasticsearch如何实现相似推荐功能 NEW 1、什么是相似推荐?比如我近期购买的吴军老师推荐的科普经典巨著《从一到无穷大》,京东会给我推荐樊登读书带火的书《微积分原理》。其实,在实际业务实战环节,或多或少也会有类似的功能,Elasticsearch 有没有类似功能呢?大家实战环节遇到的问题也大致如下:Q1:ES 有相似搜索这个功能吧?我记得有个 suggester吧?Q2:ES有没有处理相似文字的案例?2、Elasticsearch 相似推荐功能实现这里不得不介绍:MLT 检索。对!你没看错。不是:MIT(麻省理工学院... Read More >
201909-08 elasticSerch同时查询多个索引 NEW 背景许多场景需要查询的结果不在一个索引里面,但是elasticseach不能像别的数据库一样进行联查,所以我们可以同时查询多个索引的字段来满足需求查询DSL语句GET /_search { "size": 20, "query": { "bool": { &nb... Read More >
201909-07 elasticsearch深度分页详解-史上最全面试必备 NEW 三大ElasticSearch分页方式1、传统方式(from&size) 顶部查询,查询10000以内的文档 场景:需要实时获取顶部的部分文档。 eg: 例如查询最新的订单。2、Scroll 滚动游标 方式 深度分页,用于非实时查询场景 eg... Read More >
201909-06 elasticsearch中实现SQL中like的匹配效果 背景我们经常会遇到这种后台需求,要求实现SQL中like “%xxxx%”的匹配效果。因为后端要求搜索要毕竟准确的搜出来,方便做运营相关的。wildcard通配这种效果在ES中最匹配的做法是用wildcard query通配,这种情况不会对query分词,而是直接遍历倒排索引逐个匹配计算,性能是无法想象的,大家慎用。match全文匹配效果最差的做法是用match全文检索,这种情况只要query分词的任何一个term出现在倒排中,就会召回文档,所以很容易搜出一些八竿子打不着的文... Read More >
201909-05 elasticsearch中best fields策略dis_max和tie_breaker详解 概念常规multi-field搜索结果分析dis_max参数设置 一、为帖子数据增加content字段POST /forum/article/_bulk { "update": { "_id": "1"} } { "doc" : {"content" ... Read More >
201909-04 elasticsearch中四种常见的相关度分数优化方法 对相关度评分进行调节和优化的常见的4种方法1、query-time boost 查询的时候设置query的boost. 增加权重2、重构查询结构.如should中嵌套bool。3、negative boost 包含了negative term的doc,分数乘以negative boost,分数降低4、constant_score 如果你压根儿不需要相关度评分,直接走constant_score加filter,所有的doc分数都是1,没有评分的概念了1、query-time b... Read More >
201909-03 elasticsearch官方已支持SQL查询 背景平时使用Elasticsearch的时候,偶尔会在Kibana中使用Query DSL来查询数据。每次要用到Query DSL时都基本忘光了,需要重新在回顾一遍,最近发现Elasticsearch已经支持SQL查询了(6.3版本以后)简介Elasticsearch SQL是一个X-Pack组件,它允许针对Elasticsearch实时执行类似SQL的查询。无论使用REST接口,命令行还是JDBC,任何客户端都可以使用SQL对Elasticsearch中的数据进行原生搜索和... Read More >
201909-02 elasticsearch搜索建议与上下文提示suggesters 查询建议是什么?查询建议,为用户提供良好的使用体验。主要包括: 拼写检查; 自动建议查询词(自动补全) 拼写检查如图:自动建议查询词(自动补全):搜索建议通过Suggester Api实现原理是将输入的文本分解为Token,然后在词典中查找类似的Term返回根据不同场景,ElasticSearch设计了4中类别的Suggesters。Term SuggesterPhrase SuggesterComplete SuggesterContext SuggesterTe... Read More >
201909-01 elasticsearch中忽略大小写模糊搜索实现 背景有时我们想cms搜索的时候更精准一点,可能会用到wildcard不分词的模糊搜索,但是不分词就有区分大小写搜索的问题解决方案1.在es查询时不区分大小写,可以让查询更方便,具体设置如下:{ "settings": { "analysis": { "analyzer... Read More >