ElasticSearch
文章平均质量分 78
guaw007
这个作者很懒,什么都没留下…
展开
-
ElasticSearch - function_score (field_value_factor具体实例)
首先准备数据和索引,在ES插入三笔数据,其中title是text类型,like是integer类型(代表点赞量){ "title": "ES 入门", "like": 2 }{ "title": "ES 进阶", "like": 5 }{ "title": "ES 最高难度", "like": 10 }先使用一般的query,原创 2018-07-04 15:09:13 · 4324 阅读 · 2 评论 -
ElasticSearch - function_score (衰减函数 linear、exp、gauss 具体实例)
阅读本文需要先了解function_score的相关知识,请看 ElasticSearch - function_score 简介很多变量都可以影响用户对于酒店的选择,像是用户可能希望酒店离市中心近一点,但是如果价格足够便宜,也愿意为了省钱,妥协选择一个更远的住处如果我们只是使用一个 filter 排除所有市中心方圆 100 米以外的酒店,再用一个filter排除每晚价格超过100元的酒店,这种作...原创 2018-07-11 16:59:19 · 17267 阅读 · 10 评论 -
ElasticSearch - 聚合 aggs
聚合概念 ElasticSearch除了致力于搜索之外,也提供了聚合实时分析数据的功能 如果把搜索比喻为大海捞针(从海量的文档中找出符合条件的那一个),那麽聚合就是去分析大海中的针们的特性,像是 在大海里有多少针? 针的平均长度是多少? 按照针的製造商来划分,针的长度中位值是多少? 每月加入到海中的针有...原创 2018-07-23 19:13:56 · 40662 阅读 · 10 评论 -
ElasticSearch - function_score (weight具体实例)
阅读本文需要了解function_score的相关知识,先看 ElasticSearch - function_score 简介先准备数据和索引,在ES插入三笔数据,其中language是keywork类型,like是integer类型(代表点赞量){ "language": "java", "like": 5 }{ "language": "python", "like": 5 }{原创 2018-07-05 18:50:40 · 7166 阅读 · 1 评论 -
ElasticSearch - 批量操作 bulk
bulk允许在一个请求中进行多个操作(create、index、update、delete),也就是可以在一次请求裡做很多事情 也由于这个关系,因此bulk的请求体和其他请求的格式会有点不同 bulk的请求模板 分成action、metadata和doc三部份 action : 必须是以下4种选项之一 index(最常用) :...原创 2018-07-30 21:25:57 · 5937 阅读 · 0 评论 -
ElasticSearch - 环境架设、基本运维
ElasticSearch环境架设 先下载想要的版本ES ElasticSearch : https://www.elastic.co/downloads/elasticsearch 确保每台机器都升级 jdk 到 1.8 在每台机器上都安装ElasticSearch sudo rpm -ivh elasticsearch...原创 2018-08-14 11:49:49 · 468 阅读 · 0 评论 -
ElasticSearch - 输入即搜索 edge n-gram
在此之前,ES所有的查询都是针对整个词进行操作,也就是说倒排索引存了hello这个词,一定得输入hello才能找到这个词,输入 h 或是 he 都找不到倒排索引中的hello 然而在现实情况下,用户已经渐渐习惯在输入完查询内容之前,就能为他们展现搜索结果,这就是所谓的即时搜索(instant search),或是可以称为 输入即搜索(search-as-you-type) ...原创 2018-08-19 22:30:44 · 3230 阅读 · 0 评论 -
ElasticSearch - function_score 简介
function_score内容较多,此篇主要是对function_score内容做系统性的讲解,之后会出几篇实际应用的方法,参考以下链接ElasticSearch - function_score (field_value_factor具体实例)ElasticSearch - function_score (weight具体实例)ElasticSearch - function_sc...原创 2018-07-04 15:05:51 · 17402 阅读 · 6 评论 -
ElasticSearch - term 和 match 的差别
term 和 match牵扯到了分词器、mapping、倒排索引等term 是直接把field拿去查询倒排索引中确切的termmatch 会先对field进行分词操作,然后再去倒排索引中查询具体实例假设有一个字段nickname,存放的类型是text,因此当新增一笔文档时,内容会被分词器分词,然后才储存进倒排索引假设插入了一笔文档,其中"nickname": "1 hello",分词过后变为1、h...原创 2018-06-20 14:23:18 · 1136 阅读 · 1 评论 -
ElasticSearch - 基本类型与映射 (es5.x以上)
ElasticSearch支持的基本类型在 2.x -> 5.x 时进行了修改,主要是针对 string 字段的改变本文是基于ES 5.x以上所写Elasticsearch支持的基本类型字符串 : text, keywordtext:存储数据的时候,会自动分词,并生成索引keyword:存储数据的时候,不会分词,而是直接整个词拿去建索引整数 : byte, short, integer, l...原创 2018-06-07 14:34:11 · 2014 阅读 · 0 评论 -
ElasticSearch - 嵌套对象 nested
由于在ES中,所有单个文档的增删改都是原子性的操作,因此将相关的实体数据都储存在同一个文档是很好的,且由于所有信息都在一个文档中,因此当我们查询时就没有必要像mysql一样去关联很多张表,只要搜一遍文档就可以查出所有需要的数据,查询效率非常高因此除了基本数据类型之外,ES也支持使用複杂的数据类型,像是数组、内部对象,而要使用内部对象的话,需要使用nested来定义索引,使文档内可以包含一个内部对象...原创 2018-06-22 20:58:56 · 19770 阅读 · 0 评论 -
ElasticSearch - 自定义分析器
ElasticSearch的分析器实际上是将三个功能封装在一起,这三个功能按照顺序执行,而这三个功能都是能自定义的字符过滤器 (char_filter) 首先,字符串按顺序通过每个字符过滤器,他们的任务是在分词前整理字符串一个字符过滤器可以用来去掉HTML,或者将&转化成and分词器 (tokenizer)其次,字符串被分词器分爲单个的词条,一个简单的分词器遇到空格和标点的时候,可能会将文...原创 2018-06-09 10:34:42 · 5764 阅读 · 0 评论 -
ElasticSearch - 解决ES的深分页问题 (游标 scroll)
ES为了避免深分页,不允许使用分页(from&size)查询10000条以后的数据,因此如果要查询第10000条以后的数据,要使用ES提供的 scroll(游标) 来查询假设取的页数较大时(深分页),如请求第20页,Elasticsearch不得不取出所有分片上的第1页到第20页的所有文档,并做排序,最终再取出from后的size条结果作爲最终的返回值假设你有16个分片,则需要在coord...原创 2018-06-26 22:04:52 · 34174 阅读 · 4 评论 -
ElasticSearch - 抓取ES数据到本地文件
使用此脚本可以将ES上的数据抓取到本地文件,因为使用ES scroll实现,所以不受限于limit 10000笔影响 需要提前安裝 jq command Linux 安裝 : sudo apt install jq Centos 安裝 : sudo yum install jq MacOS 安裝 : brew install jq #!/bin/bash# ----------...原创 2019-06-12 10:14:15 · 3139 阅读 · 1 评论