Elaticsearch,简称为es,es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也使用java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
据国际权威的数据库产品评测机构DB Engines的统计,在2016年1月,ElasticSearch已超过Solr等,成为排名第一的搜索引擎类应用。
ES
Elasticsearch是一个实时分布式搜索和分析引擎。 它让你以前所未有的速度处理大数据成为可能。它用于全文搜索、结构化搜索、分析以及将这三者混合使用:
Solr简介
性能对比
准备条件:使用Java开发,必须保证ElasticSearch的版本与Java的核心jar包版本对应!(Java环境保证没错 JDK1.8+)
windows 下安装:
下载地址:
历史版本:
bin 启动目录
config 配置目录
log4j2 日志配置文件
jvm.options java 虚拟机相关的配置(默认启动占1g内存,内容不够需要自己调整)
elasticsearch.ym1 elasticsearch 的配置文件! 默认9200端口!
lib 相关jar包
modules 功能模块
plugins 插件目录
ik 分词器
启动 双击bin ->elasticsearch.bat
启动完成后访问默认地址:localhost:9200
准备条件 安装elasticsearch-head需要安装nodejs
下载地址:
# 进入解压目录
cd elasticsearch-head
# 安装依赖
npm install
# 启动
npm run start
# 访问
http://localhost:9100/
如上图由于es端口为9200,而head端口9100会链接时出现跨域问题;因此需要配置跨域问题
# 配置跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
简介:Kibana是一个针对ElasticSearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana ,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard )实时显示Elasticsearch查询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动Elasticsearch索引监测。
下载版本需要和elasticsearch版本对应
下载地址:
历史版本:
解压后启动
访问地址:localhost:5601
注意:
如果访问Kibana后台报错:
log [02:29:21.776] [info][plugins-service] Plugin "case" is disabled.
log [02:29:43.476] [info][plugins-system] Setting up [37] plugins: [taskManager,infra,licensing,siem,code,encryptedSavedObjects,timelion,features,security,usageCollection,metrics,canvas,apm_oss,translations,reporting,uiActions,data,navigation,share,newsfeed,kibana_legacy,management,dev_tools,status_page,inspector,expressions,visualizations,embeddable,advancedUiActions,dashboard_embeddable_container,eui_utils,home,spaces,cloud,apm,graph,bfetch]
log [02:29:43.481] [info][plugins][taskManager] Setting up plugin
log [02:29:43.550] [info][infra][plugins] Setting up plugin
log [02:29:43.552] [info][licensing][plugins] Setting up plugin
log [02:29:43.555] [info][plugins][siem] Setting up plugin
log [02:29:43.555] [info][code][plugins] Setting up plugin
log [02:29:43.556] [info][encryptedSavedObjects][plugins] Setting up plugin
log [02:29:43.558] [warning][config][encryptedSavedObjects][plugins] Generating a random key for xpack.encryptedSavedObjects.encryptionKey. To be able to decrypt encrypted saved objects attributes after restart, please set xpack.encryptedSavedObjects.encryptionKey in kibana.yml
log [02:29:43.567] [info][plugins][timelion] Setting up plugin
log [02:29:43.568] [info][features][plugins] Setting up plugin
log [02:29:43.569] [info][plugins][security] Setting up plugin
log [02:29:43.570] [warning][config][plugins][security] Generating a random key for xpack.security.encryptionKey. To prevent sessions from being invalidated on restart, please set xpack.security.encryptionKey in kibana.yml
log [02:29:43.571] [warning][config][plugins][security] Session cookies will be transmitted over insecure connections. This is not recommended.
可以另开一个cmd窗口执行
curl -X DELETE http://localhost:9200/.kibana*
重启访问即可
ELK是Elasticsearch、Logstash、 Kibana三大开源框架首字母大写简称。市面上也被成为Elastic Stack。
收集清洗数据(Logstash) --> 搜索、存储(ElasticSearch) --> 展示(Kibana)
ElasticSearch是面向文档,关系行数据库和ElasticSearch客观对比!一切都是JSON!
Relational DB | ElasticSearch |
---|---|
数据库(database) | 索引(indices) |
表(tables) | types <慢慢会被弃用!> |
行(rows) | documents |
字段(columns) | fields |
elasticsearch(集群)中可以包含多个索引(数据库) ,每个索引中可以包含多个类型(表) ,每个类型下又包含多个文档(行) ,每个文档中又包含多个字段(列)。
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一一个匹配操作,默认的中文分词是将每个字看成一个词(不使用用IK分词器的情况下),比如“我爱周杰伦”会被分为”我”,”爱”,”周”,”杰”,“伦” ,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。
IK提供了两个分词算法: ik_smart
和ik_max_word
,其中ik_smart
为最少切分, ik_max_word
为最细粒度划分!
测试发现都会把我爱周杰伦
分开;怎么让其连在一起看成一个词呢?
elasticsearch目录/plugins/ik/config/IKAnalyzer.cfg.xml