随笔分类 - elastic search
摘要:一、Date类型简介 elasticsearch通过JSON格式来承载数据的,而JSON中是没有Date对应的数据类型的,但是elasticsearch可以通过以下三种方式处理JSON承载的Date数据 符合特定格式化的日期字符串; 基于milliseconds-since-the-epoch的一个
阅读全文
摘要:一、search template简介 elasticsearch提供了search template功能,其会在实际执行查询之前,对search template进行预处理并将参数填充到template中。 elasticsearch主要提供了两个API来支持search template _sc
阅读全文
摘要:一、exists查询简介 elastic search提供了exists查询,用以返回字段存在值的记录,默认情况下只有字段的值为null或者[]的时候,elasticsearch才会认为字段不存在; exists查询的形式如下,其中field用于指定要查询的字段名字; { "query": { "e
阅读全文
摘要:一、需要解决的问题 有的时候我们需要同时执行多个查询,并且需要得到每个单独查询的搜索结果,elasticsearch提供了multi search此需求的支持; 二、elasticsearch multi search简介 elasticsearch提供了multi search api来支持一个请
阅读全文
摘要:一、数据情况 purchase记录每个用户的购买信息; PUT purchase { "mappings":{ "properties":{ "id":{ "type":"keyword" }, "name":{ "type":"text" }, "goods":{ "properties":{ "
阅读全文
摘要:一、高亮的一些问题 elasticsearch提供了三种高亮方式,前面我们已经简单的了解了elasticsearch的高亮原理; 高亮处理跟实际使用查询类型有十分紧密的关系,其中主要的一点就是muti term 查询的重写,例如wildcard、prefix等,由于查询本身和高亮都涉及到查询语句的重
阅读全文
摘要:一、highlight简介 highlight是提升用户体验的重要手段,搜索引擎通过高亮突出命中关键字等方式,方便用户通过关键字周围的信息快速的确认是否是自己希望的结果; highlight功能通常包含以下三个主要的处理过程 1.将字段文本拆分为小的片段; 2.找出最相关的片段; 3.高亮查询关键字
阅读全文
摘要:一、什么是词项向量 词项向量(term vector)是由elasticsearch在index document的时候产生,其包含对document解析过程中产生的分词的一些信息,例如分词在字段值中的位置、开始和结束的字符位置、分词的元数据payloads等; term vector是单独进行存储
阅读全文
摘要:面对海量的信息,我们很容易被淹没在信息的海洋中;当我们需要查找某个信息的时候,我们就会输入能够体现我们意图的关键字,搜索引擎会通过解析我们的关键字从而构造相应的查询表示方法;然后搜索引擎通过构造的查询在内存存储的文档集合中查找跟用户需求相关的文档,并根据相关度进行排序;以上搜索引擎进行计算的过程就是
阅读全文
摘要:一、使用场景介绍 elasticsearch除了普通的全文检索之外,在很多的业务场景中都有使用,各个业务模块根据自己业务特色设置查询条件,通过elasticsearch执行并返回所有命中的记录的id;如果命中的记录数达到数万级别的话,查询性能会有明显的下降,尤其是命中超大型的document的时候;
阅读全文
摘要:一、elasticsearch智能推荐简介 elasticsearch作为一个流行搜索引擎,通过用户输入的关键字来寻找匹配的文档,以便用户触达想要的信息;而推荐系统也是类似的处理过程,其首先拿到一个可以表征用户或者物品的数据记录,然后找到跟此记录最接近的记录推荐给用户; the more link
阅读全文
摘要:一、测试环境 python 3.7 elasticsearch 6.8 elasticsearch-dsl 7 安装elasticsearch-dsl pip install elasticsearch-dsl 测试elasticsearch连通性 from elasticsearch import
阅读全文
摘要:一、 要解决的问题 search命中的记录特别多,使用from+size分页,直接触发了elasticsearch的max_result_window的最大值; { "error": { "root_cause": [ { "type": "query_phase_execution_excepti
阅读全文
摘要:一、推荐系统简介 推荐系统主要基于对用户历史的行为数据分析处理,寻找得到用户可能感兴趣的内容,从而实现主动向用户推荐其可能感兴趣的内容; 从物品的长尾理论来看,推荐系统通过发掘用户的行为,找到用户的个性化需求,从而将长尾商品准确地推荐给需要它的用户,帮助用户发现那些他们感兴趣但很难发现的商品。 推荐
阅读全文
摘要:六、莱文斯坦编辑距离 前边的几种距离计算方法都是针对相同长度的词项,莱文斯坦编辑距离可以计算两个长度不同的单词之间的距离;莱文斯坦编辑距离是通过添加、删除、或者将一个字符替换为另外一个字符所需的最小编辑次数; 我们假设两个单词u、v的长度分别为i、j,则其可以分以下几种情况进行计算 当有一个单词的长
阅读全文
摘要:一、词项相似度 elasticsearch支持拼写纠错,其建议词的获取就需要进行词项相似度的计算;今天我们来通过不同的距离算法来学习一下词项相似度算法; 二、数据准备 计算词项相似度,就需要首先将词项向量化;我们可以使用以下两种方法 字符向量化,其将每个字符映射为一个唯一的数字,我们可以直接使用字符
阅读全文
摘要:一、什么是拼写纠错 拼写纠错就是搜索引擎可以智能的感知用户输入关键字的错误,并使用纠正过的关键字进行搜索展示给用户;拼写纠错是一种改善用户体验的功能; elasticsearch提供了以下不同类型的suggester来完成拼写纠错和自动完成功能; term suggester主要针对单个的term分
阅读全文
摘要:拼音搜索在中文搜索环境中是经常使用的一种功能,用户只需要输入关键词的拼音全拼或者拼音首字母,搜索引擎就可以搜索出相关结果。在国内,中文输入法基本上都是基于汉语拼音的,这种在符合用户输入习惯的条件下缩短用户输入时间的功能是非常受欢迎的; 一、安装拼音搜索插件 下载对应版本的elasticsearch-
阅读全文
摘要:IK是基于字典的一款轻量级的中文分词工具包,可以通过elasticsearch的插件机制集成; 一、集成步骤 1.在elasticsearch的安装目录下的plugin下新建ik目录; 2.在github下载对应版本的ik插件; https://github.com/medcl/elasticsea
阅读全文
摘要:一、inner hits简介 elasticsearch提供了nested数据类型来处理主子文档的问题,可以解决子文档字段被分裂平铺导致字段之间失去了整体的关联性; elasticsearch提供的inner hits主要完成在通过子文档进行匹配查询的时候,可以方便控制匹配的子文档的返回; 二、数据
阅读全文