一、整合ES
ES常用概念
索引,类型,文档是什么?
- 索引就像是Mysql中的库
- 类型就像是Mysql中的表
- 文档就像是数据
- 属性就是列名
- 所有的数据都是Json格式
倒排索引
简约理解版本2.0
正向索引,数据库创建索引,增加搜索速度。
倒排索引是根据关键字去找文档,然后记录一下出现的位置和次数。
根据关键字去找文档,然后记录一下出现的位置和次数
什么是倒排索引?
ElasticSearch中一个重要的概念 : 倒排索引(Inverted Index)也叫反向索引,有反向索引必有正向索引。通俗地来讲,正向索引是通过key找value,反向索引则是通过value找key。
首先弄懂几个概念,如果类比现代汉语词典的话,那么Term就相当于词语,Term Dictionary相当于汉语词典本身,Term Index相当于词典的目录索引,Posting List相当于词语在字典的页数集合:
- Term(单词):一段文本经过分析器分析以后就会输出一串单词,这一个一个的就叫做Term(直译为:单词)
- Term Dictionary(单词字典):顾名思义,它里面维护的是Term,可以理解为Term的集合
- Term Index(单词索引):为了更快的找到某个单词,我们为单词建立索引。B-Tree通过减少磁盘寻道次数来提高查询性能,
- Elasticsearch也是采用同样的思路,直接通过内存查找term,不读磁盘,但是如果term太多,term dictionary也会很大,放内存不现实,于是有了Term Index,就像字典里的索引页一样,A开头的有哪些term,分别在哪页,可以理解term index是一颗树:
- Posting List(倒排列表):倒排列表记录了出现过某个单词的所有文档的文档列表及单词在该文档中出现的位置信息,每条记录称为一个倒排项(Posting)。根据倒排列表,即可获知哪些文档包含某个单词。(PS:实际的倒排列表中并不只是存了文档ID这么简单,还有一些其它的信息,比如:词频(Term出现的次数)、偏移量(offset)等,可以想象成是Python中的元组,或者Java中的对象)
相关度分数score的计算
ES工作原理还是很复杂的,现阶段我们学会使用即可,到后期准备面试了,在继续深入学习!
安装ES和Kibana
快速安装
(1)下载ealastic search(存储和检索)和kibana(可视化检索) docker pull elasticsearch:7.4.2 docker pull kibana:7.4.2 (2)配置 # 将docker里的目录挂载到linux的/mydata目录中 # 修改/mydata就可以改掉docker里的 mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data # es可以被远程任何机器访问 echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml # 递归更改权限,es需要访问 chmod -R 777 /mydata/elasticsearch/ (3)启动Elastic search # 9200是用户交互端口 9300是集群心跳端口 # -e指定是单阶段运行 # -e指定占用的内存大小,生产时可以设置32G docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \ -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -d elasticsearch:7.4.2 # 设置开机启动elasticsearch docker update elasticsearch --restart=always (4)启动kibana: # kibana指定了了ES交互端口9200 # 5600位kibana主页端口 docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.1.8:9200 -p 5601:5601 -d kibana:7.4.2 # 设置开机启动kibana docker update kibana --restart=always
kibana
访问Kibana: http://192.168.1.8:5601/app/kibana
初步检索_cat
GET /_cat/nodes 查看所有节点。集群中会用到 GET /_cat/health 查看es健康状况 GET /_cat/master 查看主节点 GET /_cat/indices 查看所有索引 ,等价于mysql数据库的show databases;
post新增
不带id
带上id,也是新增修改二合一
区别
PUT必须指定id;由于PUT需要指定id,我们一般用来做修改操作
POST新增。如果不指定id,会自动生成id,指定存在的id为更新
查询文档
GET /customer/external/1
乐观锁的使用
通过“if_seq_no=1&if_primary_term=1”,当序列号匹配的时候,才进行修改,否则不修改。
开启事务锁后,两个事务并行修改数据的时候,只要有一个事务修改完数据,记录中记录的版本号就会加1,另一个事务修改的时候会带上版本号判断,如果版本号发生了变化了那就不会进行修改
更新文档_update
POST customer/externel/1/_update { "doc":{ "name":"111" } } 或者 POST customer/externel/1 { "doc":{ "name":"222" } }
ES进阶
https://www.elastic.co/guide/en/elasticsearch/reference/7.6/docs-reindex.html
官方文档如下:
如下示例看着文档就可以写出来。
两种查询方式
ES支持两种基本方式检索;
- 通过REST request uri 发送搜索参数 (uri +检索参数);
- 通过REST request body 来发送它们(uri+请求体);
测试如下:
GET bank/_search/?q=*&sort=account_number:asc 说明: q=* # 查询所有 sort # 排序字段 asc #升序 GET bank/_search { "query": { "match_all": {} }, "sort": [ { "account_number": "asc" } ] } 添加新的查询条件 GET bank/_search { "query": { "match_all": {} }, "sort": [ { "account_number": "asc" }, { "balance": "desc" } ] }
热门文章
最新文章
相关实验场景
更多相关内容推荐
人生的八个关键词解说文案用关键词描述价值观的成语印象最深刻的两个关键词是画关键词的好处是什么意思一年级语文教学中的关键词简斯维尔关键词是什么意思重庆市百度关键词哪家好明日方舟桃金娘的关键词8大企业家年度关键词排名搜索引擎怎么选关键词排名关键词看十年变化的句子党委扩大会关键词有哪些第三个历史决议的关键词恰当的关键词应该是什么任正非的四大关键词是哪个关键词关键词我的七年级关键词烦恼作文三明治包装袋关键词有哪些四年级环境关键词的使用亚马逊关键词广告关键词百度关键词排名霸屏推广与欧洲中世纪有关的关键词网购大码女马甲关键词是啥公司科技创新的四个关键词新年关键词一直爱你的英文互联网四大关键词是指什么添加高质量关键词的方式优点和缺点的三个关键词聊城关键词百度推广公司百家号关键词优化排名推广整合营销关键词总结怎么写六大关键词读懂冬奥防疫河北医科大学关键词英语中国消费十大关键词是什么买手机型号避开关键词看冬奥会观后感的关键词如何通过百度查询关键词世界文明史的关键词是什么面对时光流逝的三个关键词球球大作战花痴关键词图片诺贝尔奖的五个关键词改变思维的八大关键词是抖音里的关键词从哪输入的金融业三大关键词有哪些为牛仔裤写50个关键词小学一年级找关键词四个关键词介绍浙江大学在百度做关键词推广费用两个关键词和成人教育相关源代码中加入关键词的作用信息管理工作关键词有哪些婚礼上写什么关键词好一点浦东十大关键词排名优化设置关键词 长尾关键词电商搜索引擎热门关键词阅读人生四个关键词是什么关键词关键词歌词百度如何做关键词排名管理沟通的三大关键词是交行五个高质量发展关键词电脑关键词检索结果不一样三个关键词的英语自我介绍用三个关键词描述一下潍坊铜山县百度关键词优化策划关键词张家旺百度云下载农业产业十大关键词排名关键词掉一大堆怎么办小学生是学会了什么关键词三个关键词展望工作岗位北京丰台百度关键词seo安全生产的十大关键词是一站式关键词优化工具晶体三极管符号及关键词阿里巴巴云客服四个关键词中国企业十大关键词以告别为关键词写作文题目孝感市关键词优化多少钱公务员十四个关键词是什么在淘宝买推拉门关键词是啥关键词物理化学变化的判断关键词为什么关键词不稳定性高我的寒假关键词漫画图片狮子座的恋爱关键词有哪些什么叫互联网关键词推广一句话的核心关键词天猫怎么看关键词流量多少一句话概括关键词的意义抖音关键词查询器在哪里手机千牛怎么查成交关键词平顶山关键词优化哪家专业陈正之读书的关键词有哪些摘要跟关键词要不要空一行二级建造师的关键词有哪些银川市关键词推广联系方式西游记第二回出现的关键词百度关键词排名优化服务商关键词在电脑上怎么找出来三个关键词介绍王俊凯英文东北旅游资源的特色关键词醉驾登记表关键词填写错误三个关键词解读餐饮新零售论文关键词一定在摘要里吗仓管的职位关键词什么意思承德百度关键词排名哪家好爱国主义有哪些关键词呢95年后的新生代关键词中国经济的五大关键词影响学生一生的关键词有百度推广关键词链接怎么弄晒出我的青春关键词是什么幼儿园的五个关键词是什么高三成功的三个关键词一站式关键词优化排名五大重量级关键词是什么搜索关键词进直播间怎么弄天猫和京东的10个关键词关键词和seo关键词关键词不属于异常处理的关键词是6G到7G关键词决定职业成败的四个关键词平底鞋的关键词一般怎么说活下来的两个关键词是什么关键词监控商品关键词零食搜索关键词辣条排名亚马逊竞品关键词查不出来时间管理四个关键词是什么关于冬奥会关键词作文题目以木凳暖阳为关键词写作文武汉关键词是什么意思啊宝山区百度推广长尾关键词关键词是大梦想家的动漫去养老院的感受关键词是抖音视频剪辑的关键词元氏第三方网站关键词分类摘要关键词用空两格吗sd卡的关键词是什么意思韩媒三大关键词是什么冬奥会十大关键词是什么化学工业的关键词有哪些一年级关键词写一段话我的二零二一年度关键词全国两会八大关键词有哪些内蒙古关键词优化代理商天猫关键词占比怎么看拼多多怎么没办法选关键词关于人生的八个关键词英语秒排上千个关键词套路顺昌县关键词优化外包公司百家号关键词自动回复内容婴幼儿食品行业关键词优化万柏林区无障碍关键词排名基础教育十大关键词是什么百年孤独节选课文关键词百度人工智能小程序关键词浦东十大关键词排名优化兰州新区五大关键词有哪些拼多多关键词可以降价吗怎么查关键词的相关性排名定制家具的五大关键词疫情中的四个关键词有哪些二十四个关键词小说百度云当代中国年轻人的关键词球球大作战关键词鸭武士球球大作战的多分身关键词直通车关键词突然不成交了小蓝鸟关键词二次元星之卡比礼物关键词不联网如何看竞争对手进店关键词陕西关键词排名优化学习新浪的搜索引擎关键词广告优秀教师的四字关键词以背影为关键词写6个句子常德关键词排名哪家强一点草船借箭第一段关键词高质量发展的六大关键词关键词病院第二季樱花动漫我将围绕两个关键词写作文淘宝进店关键词看不到了买大号毛绒玩具关键词是啥红楼梦第一回的关键词是搜索引擎关键词广告的意思怎么看闲鱼进店的关键词运维工程师职位关键词优化白色蝴蝶关键词关键词一对一关键词排名靠谱吗小学四年级关键词题型关键词关键词设置我的初三关键词满分作文百度推广冷藏车关键词优化拼多多刷关键词有没有权重怀柔区银联关键词排名要求男生成熟穿搭关键词有哪些普通话第四题关键词是什么安氏错颌的两个关键词买二手平板如何输入关键词关键词标题关键词四年级写作文的关键词毕业论文关键词两个可以吗