ElasticSearch
Posted fan-mister
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch相关的知识,希望对你有一定的参考价值。
目录结构
bin :启动文件
config:配置文件
log4j2 :日志配置文件
jvm.options java 虚拟机相关配置
elasticSerch.yml elasticSerch的配置文件 默认端口9200
lib:相关jar包
logs: 日志
modules:功能模块
pulgins:插件(ik)
1.安装es ,进入bin目录 双击运行elasticsearch.bat
浏览器地址输入:http://localhost:9200
2.安装图形化工具 head (前提必须安装node.js环境)
安装npm install
进入head目录,cmd 执行启动命令:npm run start
浏览器地址输入:http://localhost:9100
3.连接head 时存在跨域问题,需要爱es配置文件中(config/elasticSerch.yml )配置跨域属性值
http.cors.enabled: true
http.cors.allow-origin: "*"
4.了解ELK
ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。市面上也被成为Elastic Stack。其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框 架。像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,可 见Elasticsearch提供的搜索能力确实强大,市面上很多时候我们简称Elasticsearch为es。Logstash是ELK 的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出 到不同目的地(文 件/MQ/redis/elasticsearch/kafka等)。Kibana可以将elasticsearch的数据通过友好 的页面展示出来,提供实时分析的功能。
市面上很多开发只要提到ELK能够一致说出它是一个日志分析架构技术栈总称,但实际上ELK不仅仅适用 于日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性。并非 唯一性。
5.安装Kibana
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索 引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理 解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查 询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动 Elasticsearch索引监测。 官网:https://www.elastic.co/cn/kibana
Kibana 版本要和 Es 一致!
进步bin目录执行kibana.bat运行
访问地址:http://localhost:5601
设置成中文的,在kibana 安装的目录下的config文件中的kibana.yml文件中设置
#i18n.locale: " ch-ZN"
ES
集群,节点,索引,类型,文档,映射
字段类型(mapping)中对于字段的定义称为映射, 比如 name 映射为字符串类型。
安装ik分词器
有两种分词
1.ik_smart :为最小切分
2.ik_max_word :为最细粒度切分
基于restFul风格命令
创建索引
PUT /test1/type1/1 { "name": "苦瓜先森", "age": 22 }
第一种情况
1.创建索引字段规则 注意没有写属性,默认属性是_doc(PUT /test2/_doc)
PUT /test2 { "mappings": { "properties": { "name": { "type": "text" }, "age": { "type": "long" }, "birthday": { "type": "date" } } } }
新建对应规则的文档**类型名称必须为_doc,字段类型必须对应
put /test2/_doc/1 { "name": "中国人名", "age": 12, "birthday": "2020-12-21" }
第二种情况
创建指定type类型规则 ElasticSearch7.x版本废弃这种写法了,ElasticSearch6.x支持
PUT /test3 { "mappings": { "test": { "properties": { "name": { "type": "text" }, "age": { "type": "long" }, "birthday": { "type": "date" } } } } }
修改
第一种方式
PUT /test2/_doc/1 { "name": "苦瓜先森11", "age": 22, "birthday": "2020-08-06" }
第二种方式
POSt /test2/_doc/1/_update { "doc": { "age": 99 } }
以上是关于ElasticSearch的主要内容,如果未能解决你的问题,请参考以下文章
使用标准库Ruby将数据标记到Elasticsearch批量中
Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能