
es
喵了个咪的回忆丶
Java后台
展开
-
十三、es集群
一、集群、分布式的概念和作用三个红框彼此构成集群每个红框内部构成分布式合起来就是集群分布式架构二、es集群的特点es天然支持分布式es的设计隐藏了分布式本身的复杂性三、es集群分布式架构的相关概念集群(cluster):一组拥有共同的 cluster name 的节点节点(node):集群中的一个es实例索引(index):es存放数据的地方,相当于关系数据库中database的概念分片(shard):索引可以被拆分为不同的部分进行存储,称为分片。在集群环境下,一个索引的不原创 2021-09-12 15:56:09 · 557 阅读 · 0 评论 -
十二、重建索引、索引别名
一、重建索引es的索引一旦创建,只允许添加字段,不允许更改字段,因为改变字段需要重建倒排索引,影响内部缓存结构,性能太低。# 使用reindex拷贝数据POST _reindex{ "source": { "index": "index_v1" }, "dest": { "index": "index_v2" }}完整脚本为:# 重建索引# 新建索引:index_v1,注意:索引名称必须全部小写PUT index_v1{ "mappings":原创 2021-09-12 15:32:01 · 1316 阅读 · 0 评论 -
十一、聚合查询
聚合查询指标聚合:相当于mysql的聚合函数,比如max、min、avg、sum等桶聚合:相当于mysql的group by操作。注意:不要对text类型的数据进行分组,会失败,因为text类型会进行分词,分完词之后就是不同的词条进行存储了,而分组希望的是一个整体和其他的进行比对,所以text类型的不要使用分组,keyword的可以。1、指标聚合(聚合函数)# 指标聚合 聚合函数GET goods/_search{ "query": { "match": { "tit原创 2021-09-12 13:30:31 · 362 阅读 · 0 评论 -
十、布尔查询
布尔查询boolQuery:对多个查询条件进行连接。连接方式有:must(and):条件必须成立must_not(not):条件必须不成立should(or):条件可以成立filter:条件必须成立。性能比must高,因为不会计算得分查询的脚本格式:GET 索引名称/_search{ "query": { "bool": { "must": [ {}, {}, {} ], "filter": [ {}, {}原创 2021-09-11 23:17:35 · 894 阅读 · 0 评论 -
九、多字段查询:queryString
queryString查询会对查询条件进行分词然后将分词后的查询条件和词条进行等值匹配默认取并集(or)可以指定多个查询字段GET goods/_search{ "query": { "query_string": { "fields": ["字段1","字段2"...], "query": "查询条件1 or 查询条件2" } }}如果查询字段中有三个字段,而query只有「华为手机」,那么会先自动将「华为手机」分为两个词:华为、手机原创 2021-09-11 22:08:13 · 1443 阅读 · 0 评论 -
八、范围查询
范围查询:rangees中任何查询都能排序gte:设置下限lte:设置上限GET goods/_search{ "query": { "range": { "price": { "gte": 100, "lte": 500 } } }}也可以设置排序规则:GET goods/_search{ "query": { "range": { "price": { "gte原创 2021-09-11 21:41:56 · 480 阅读 · 0 评论 -
八、模糊查询
模糊查询wildcard查询:通配符查询,?(任意单个字符),*(0个或多个字符);会进行分词regexp查询:正则查询prefix查询:前缀查询一、通配符查询(wildcard)GET goods/_search{ "query": { "wildcard": { "title": { "value": "title?" } } }}GET goods/_search{ "query": { "wildca原创 2021-09-11 18:30:03 · 293 阅读 · 0 评论 -
七、term查询、match查询
一、term查询不会对查询字段进行分词,也就是如果es中的数据为「华为5g手机」,那通过term指定查询条件为「华为手机」时,是查不到该条数据的。一般用term查询es中字段类型为keyword的字段,因为keyword不会分词GET 索引名称/_search{ "query": { "term": { "字段名称": { "value": "查询条件" } } }} /** * termQuery 词原创 2021-09-11 18:11:55 · 917 阅读 · 0 评论 -
六、bulk批量查询、bulk批量导入、match_all
一、bulk批量查询# 批量操作# 删除5号记录# 添加8号记录# 修改2号的名词为二号POST _bulk{"delete":{"_index":"person","_id":"5"}}{"create":{"_index":"person","_id":"8"}}{"name":"八号","age":80,"address":"北京"}{"update":{"_index":"person","_id":"2"}}{"doc":{"name":"二号"}} @Test原创 2021-09-11 14:48:59 · 913 阅读 · 0 评论 -
五、pom依赖,对索引和文档的添加、查询、删除、判断
一、pom依赖 <!--引入es的坐标--> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-client</artifactId> <version>7.6.2</version>原创 2021-08-30 23:04:13 · 508 阅读 · 0 评论 -
四、查询文档(term和match)
查询文档词条查询 term:不会分析查询条件,只有当词条和查询字符串完全匹配时才匹配搜索全文查询 match:会分析查询条件,先将查询条件进行分词,然后查询,最后求并集# term 词条查询。查询的条件字符串和词条要完全匹配# field指要查询的字段,value指查询的条件字符串GET person/_search{ "query": { "term": { "address": { "value": "北京" } } }}原创 2021-08-29 16:29:03 · 374 阅读 · 0 评论 -
三、es分词器
一、内置分词器es内置分词器对中文很不友好,处理方式为:一个字一个词。es的内置分词器:Standard Analyzer:默认分词器,按词切分,小写处理Simple Analyzer:按照非字母切分(符号被过滤),小写处理Stop Analyzer:停用词过滤(the,a,is),小写处理Whitespace Analyzer:按照空格切分,不转小写Keyword Analyzer:直接将输入当做输出,不分词Patter Analyzer:正则表达式,默认 \W+(非字符分割)Lan原创 2021-08-29 15:40:57 · 3144 阅读 · 0 评论 -
mac配置java和maven环境
配置javavim .bash_profile# javaexport JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Homeexport PATH=$PATH:${JAVA_HOME}/bin# mavenexport M2_HOME=/Users/xxxxx/Downloads/settingfile/apache-maven-3.8.1export PATH=$PATH:$M2_HOME/原创 2021-08-29 15:18:46 · 224 阅读 · 0 评论 -
二、es的可视化工具:Kibana及练习
安装Kibanaes官方地址:elastic.co/cn重要:这里进去后一定要选择es对应的版本点击kibana,照着安装:curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-darwin-x86_64.tar.gztar xzvf kibana-7.6.2-linux-x86_64.tar.gzcd kibana-7.6.2-linux-x86_64/进入config文件夹,对kiban原创 2021-08-28 17:30:04 · 1254 阅读 · 0 评论 -
一、概念及字段含义
一、基本概念mysql支持事务,而es不支持事务,所以es中的数据删除后是无法恢复的。es没有物理外键这个特性,如果要求数据具有强一致性,建议慎用es。mysql复杂存储数据,es负责搜索数据。目前在企业级应用的场景中,es的作用是:先将mysql中的数据同步到es中,以后如果进行查找的话,就查es以提升查询效率;但mysql依然有用,比如增删改的时候,作用的是mysql,编辑完后再同步到es中。所以es并不是用来替换mysql的,而是用来提升查询性能的。二、核心概念索引(index):es原创 2021-08-28 16:18:38 · 627 阅读 · 0 评论 -
ES概念笔记
一、基本概念Elasticsearch 是一个实时的分布式存储、搜索和分析的引擎,与数据库相比,es的强大之处在于可以更快更精确的进行模糊匹配和相关性查询,数据库虽然也能通过 name like %模糊查询% 的方式进行查询,但是这种方式不走索引,如果数据量很大,查询就会很费时。基于 Lucene 搜索服务器,Lucene是一个jar包,它是实际保存数据并进行索引和搜索的地方,里面有一些封装好的倒排索引,ES 位于它之上,可以并行运行数千个 Lucene 实例。ES的最高级别单元是集群,集群是ES节原创 2020-07-12 14:35:46 · 942 阅读 · 0 评论