Elasticsearch
文章平均质量分 69
Elasticsearch知识点
小镇程序员
Php And Golang Coder
展开
-
Elasticsearch进行and,or多条件嵌套组合DSL结构化查询
业务需求中有如下查询:( a=1 and (b=2 or b=3) ) or (a=2 and (b=1 or b =2))网上找了大半天没找到结果,只能自己尝试拼写DSL语句,功夫不负有心人,果然找到了正确的写法,现分享给有需要的同学(使用的es版本:6.8.0)https://github.com/memoryFuhao/elasticsearch_client (打个广告 以上链接是本人开发的一个es客户端工具,支持es大部分 CRUD操作 分页、分组、嵌套分组、and or ·转载 2021-11-19 21:22:21 · 5167 阅读 · 0 评论 -
tp操作elasticsearch
网上的很多都是讲ES5的过时的。现在ES6之后有点变动了,搞了一天一夜才搞通,现在分享出来让大家少走点弯路。首先下载ES,6以上的要JRE8以上才可以,不兼容安装不了,注意ES版本要和中文分词插件IK版本一致,不然用不了。我这边提供下载,是6.2.3版本的,已经集成IK了,下载之后解压到非网站目录就可以了。链接: https://pan.baidu.com/s/1j-MWtj46ykDMFn8ROyGA4w 提取码: 2np1 。你也可以从官网下载最新版之后安装,官网的最新版的要64位系统才可以。下载之后安原创 2021-11-17 17:28:12 · 357 阅读 · 0 评论 -
Elasticsearch中text与keyword的区别
text类型1:支持分词,全文检索,支持模糊、精确查询,不支持聚合,排序操作; 2:test类型的最大支持的字符长度无限制,适合大字段存储; 使用场景: 存储全文搜索数据, 例如: 邮箱内容、地址、代码块、博客文章内容等。 默认结合standard analyzer(标准解析器)对文本进行分词、倒排索引。 默认结合标准分析器进行词命中、词频相关度打分。keyword1:不进行分词,直接索引,支持模糊、支持精确匹配,支持聚合、排序操作。 2:keyword类型的最大支持的长度为——32766个UT原创 2020-10-10 09:34:29 · 368 阅读 · 0 评论 -
ElasticSearch - 聚合 aggs 详解
聚合概念 ElasticSearch除了致力于搜索之外,也提供了聚合实时分析数据的功能 如果把搜索比喻为大海捞针(从海量的文档中找出符合条件的那一个),那麽聚合就是去分析大海中的针们的特性,像是 在大海里有多少针? 针的平均长度是多少? 按照针的製造商来划分,针的长度中位值是多少? 每月加入到海中的针有多少? 这里面有异常的针麽? 因此透过聚合,我们可以得到一个数据的原创 2020-09-29 12:02:46 · 5729 阅读 · 1 评论 -
elasticsearch面试必考
es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗?面试官心理分析问这个,其实面试官就是要看看你了解不了解 es 的一些基本原理,因为用 es 无非就是写入数据,搜索数据。你要是不明白你发起一个写入和搜索请求的时候,es 在干什么,那你真的是......对 es 基本就是个黑盒,你还能干啥?你唯一能干的就是用 es 的 api 读写数据了。要是出点什么问题,你啥都不知道,那还能指望你什么呢?es 写数据过程 客户端选择一个原创 2020-09-28 18:17:19 · 201 阅读 · 1 评论 -
Golang 封装Elasticsearch
package toolimport ( "context" "encoding/json" "fmt" "log" "os" "strconv" "time" "gopkg.in/olivere/elastic.v6")type EsClientType struct { EsCon *elastic.Client}var Timeout="10s" //超时时间var EsClient EsClientType //连接类型.原创 2020-08-23 09:51:37 · 657 阅读 · 1 评论 -
Elaticsearch range filter来进行范围过滤
数据准备:PUT /forum/article/1{ "articleID": "A1", "userID": 1, "hidden": false, "postDate": "2017-01-01"}一、1、为帖子数据增加浏览量的字段POST /forum/article/_bulk{"update":{"_id":"1"}}{"doc": {"view_cnt": 30}}{"update":{"_id":"2"}}{"doc...原创 2020-08-23 09:04:48 · 160 阅读 · 0 评论 -
Elaticsearch bool组合多个filter条件来搜索数据
must ,should, must_not 解释: 必须匹配,可以匹配其中任意一个即可,必须不匹配说明:should是可以影响相关度分数的must是确保说,谁必须要这个关键字,同时会根据这个must的条件去计算出document对这个搜索条件的releance score在满足must的基础之上,should中的条件,不匹配也可以,但是如果要匹配的更多,那么document的relevance score就会更高数据准备:PUT /forum/article/1{ "ar原创 2020-08-22 19:52:20 · 405 阅读 · 0 评论 -
elasticsearch 基本操作CURD
一 、新建索引1、格式PUT /index/type/id /索引名称/type类型/id2、实例PUT /ecommerce/product/1{ "name" : "gaolujie yagao", "desc" : "gaoxiao meibai", "price": 30, "producer" : "golujie producer", "tags" : ["meibai", "fangzhu"]}PUT /ecommerce/produc.原创 2020-08-22 19:22:26 · 602 阅读 · 1 评论 -
Elaticsearch mapping详解
mapping(映射-约束)数据如何存放到索引对象上,需要有一个映射配置,包括:数据类型、是否存储、是否分词等。下面例子就创建了一个名为blog的Index。Type不用单独创建,在创建Mapping 时指定就可以。Mapping用来定义Document中每个字段的类型,即所使用的 analyzer、是否索引等属性,非常关键等。创建Mapping 的代码示例如下: client.indices.putMapping({ index : 'blog', typ...原创 2020-08-22 10:06:37 · 187 阅读 · 1 评论 -
Elaticsearch 总结
1、为什么用es做搜索而不用myslq原因:1)描述上万文字 不可能一一进行判断2)es能进行分词,mysql不可以分词,比如我们想搜索 “生化危机” 生危机,mysql不能搜索到,es就可以搜到3)大量查询mysql比较低下4)用数据库来实现搜索,是不太靠谱的。通常来说,性能会很差的2、全文检索-------------------------总结1:数据库里面的数据 比如100万条,按照之前思路数据库存储,其实就是要扫描100万次,而且每次扫描都需要匹配那个文本所有的字符,确认是原创 2020-08-22 09:57:28 · 673 阅读 · 1 评论 -
elasticsearch为什么比mysql快
想要搞清这个问题要从mysql和ES的索引数据结构下手,咱们先了解一下mysql的索引结构,然后再了解一下ES的索引结构,然后再进行对比这个问题就会很清楚了。mysql关系型数据库索引原理:数据库的索引是B+tree结构主键索引是聚合索引,其他索引是非聚合索引聚合索引:可以通过主键直接找到数据。非聚合索引:如果mysql根据非聚合索引去查询数据,首先要通过非聚合索引找到对应的主键id,再去根据主键id走聚合索引找到数据Elasticsearch倒排索引原理:在原创 2020-08-19 16:16:25 · 4113 阅读 · 1 评论