首页 > 编程知识 正文

es搜索引擎做日志,es搜索引擎架构

时间:2023-05-04 10:02:22 阅读:127228 作者:4438

安装电子搜索

因为本人的操作系统是deepin的liunx系统,所以本博客发布Linux安装步骤。

1 .前言

Elasticsearch概述* Elasticsearch是一个实时分布式搜索和分析引擎。 这有助于你以前所未有的速度处理大数据。

可用于全文检索、结构化检索和分析。 当然,这三者也可以结合起来。

Elasticsearch是基于全文搜索引擎Apache Lucene构建的搜索引擎,可以说Lucene是当今最先进、最高效的全功能开源搜索引擎框架。

但是,Lucene只是一个框架,必须使用JAVA并将Lucene集成到程序中才能充分利用其功能。 了解它是如何工作的需要很多学习,Lucene确实非常复杂。

虽然Elasticsearch使用Lucene作为内部引擎,但如果将其用于全文搜索,则无需了解其背后的复杂Lucene是如何工作的,只需使用统一开发的API即可。

当然,Elasticsearch不仅具有Lucene,还具有全文搜索功能,还可以执行以下操作:

分布实时文件存储,以便可以对每个字段进行索引和搜索。

实时分析的分布式搜索引擎。

可以扩展到数百台服务器,以处理Pb级结构化或非结构化数据。

这些功能都集成到单个服务器中,使您可以轻松地用客户端和您喜欢的程序语言与ES的rest风格的API进行通信。

电子搜索的技巧非常简单。 这有很多非常合理的默认值,这样初学者很快就可以避免面对复杂的理论

安装后即可立即使用,只需很少的学习成本即可实现生产力。

学习越多,您就越能利用Elasticsearch的更高级功能,从而灵活地配置整个引擎。 您可以根据自己的需求定制自己的elastic搜索。

使用案例:

维基百科使用Elasticsearch进行全文搜索,突出显示关键字,并提供搜索建议功能,如search-as-you-type和did-you-mean。

《卫报》使用Elasticsearch处理访问者日志,以实时向编辑反馈公众对各种文章的反应。

堆栈溢出将全文搜索、地理位置和相关信息相结合,以表达“多生命周期”相关问题。

GitHub使用Elasticsearch搜索超过1300亿行代码。

每天,Goldman Sachs都用它来处理5TB数据的索引,并使用很多投票来分析股市波动。

但是,Elasticsearch不仅面向大公司,还帮助许多创业公司(如DataDog和Klout )扩展功能。

Elasticsearch的优缺点**:的优点Elasticsearch分散。 不需要其他组件。 分发是实时的,称为“推送复制”。 Elasticsearch完全支持Apache Lucene的接近实时搜索。 处理多租户不需要特殊配置,但Solr需要更高级的设置。 Elasticsearch采用网关概念,因此可以轻松完成备份。 每个节点构成对等的网络结构,在某些节点发生故障时,会自动分配其他节点进行工作。 缺点一个开发人员(目前的Elasticsearch GitHub组织已经不仅如此,而且已经有相当活跃的维护者) (不适合现在的新索引warmup API )。参考https://www.cn blogs.com/CCC

容错堆栈的核心Elasticsearch是分布式rest风格的搜索和分析引擎,可以解决越来越多的用例。 Elastic Stack的核心是集中存储数据,以发现和发现意外情况。

你和数据的关系会发生变化。 我有充裕的时间反复覆盖更多的基础。

ElasticSearch实现了用于全文查询的带有限状态传感器的反向索引、用于存储数字和地理数据的BKD树以及用于分析的列存储。

由于所有内容都是索引的,因此在使用过程中不会发生索引冲突。 可以非常快速地利用和访问所有数据。

使用强大的扩展Elasticsearch向群集添加用户名和密码,监视Elasticsearch的运行方式,运行机器学习作业以检测异常,以及使用X-Pack功能。

X-Pack可轻松安装在Elasticsearch上,提高安全性、监控、警告、报告、图形搜索和机器学习能力。

margin-left:0px;">Elasticsearch-head 以及 bigdesk

 

2.下载

名称版本下载地址elasticsearch1.7.3elasticsearch-1.7.3.tar.gz

下载后,放到你的目录下并解压. 因为我们要配置包含三个节点的集群,可以先将其重命名为elasticsearch-node1。比如我的是 /home/hushuai/elasticsearch/elasticsearch-node1

3.修改配置文件
打开/home/hushuai/elasticsearch/config/ 目录下的elasticsearch.yml 文件 ,修改以下属性值并取消该行的注释:

cluster.name: elasticsearch #这是集群名字,起名为 elasticsearch。es启动后会将具有相同集群名字的节点放到一个集群下。node.name: "es-node1" #节点名字covery.zen.minimum_master_nodes: 2 #指定集群中的节点中有几个有master资格的节点。对于大集群可以写3个以上。discovery.zen.ping.timeout: 40s#默认是3s,这是设置集群中自动发现其它节点时ping连接超时时间,为避免因为网络差而导致启动报错,我设成了40s。discovery.zen.ping.multicast.enabled: false#设置是否打开多播发现节点。network.苗条的丝袜d_host: 127.0.0.1#设置绑定的ip地址,这是我的master的IP。network.publish_host: 127.0.0.1#设置其他节点和该节点交互的IP地址network.host: 127.0.0.1#同时设置苗条的丝袜d_host和publish_host上面两个参数discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301","127.0.0.1:9302"]#discovery.zen.ping.unicast.hosts:["节点1的 ip","节点2 的ip","节点3的ip"]#指明集群中其他可能为master的节点ip,以防es启动后发现不了集群中的其他节点。第一对引号里是node1,默认端口是9300.第二个是node2,端口号是9301。第三个引号里是node3,端口号为9302​​​​​

进一步修改 
拷贝 elasticsearch-node1 整个文件夹,两份,一份elasticsearch-node2,一份elasticsearch-node3. 

 

/home/hushuai/elasticsearch/config/elasticsearch.yml 文件修改如下:

node.name: "es-node2"

transport.tcp.port: 9301

http.port: 9201

 

node.name: "es-node3"

transport.tcp.port: 9302

http.port: 9202

因为是在一台机器在实现的集群,只要端口不被占用就可以。

如果想真的放的多台机器上,只需要根据我的配置修改端口即可。

 

运行 & 关闭 elasticsearch

1.运行elasticsearch :

编辑 /home/hushuai/elasticsearch/苗条的丝袜/elasticsearch.in.sh, 设置 ES_MIN_MEM和ES_MAX_MEM,确保二者数值一致。

若想让es后台运行,则

./elasticsearch -Xms512m -Xmx512m

2.关闭elasticsearch:

来关闭整个集群,通过:

curl -X POST http://主机IP:9200/_cluster/nodes/节点标识符(如es-node1)/_shutdown

 

安装相关组件:

BigDesk Plugin : 弹性搜索集群的实时图表和统计数据。http://bigdesk.org/
Elasticsearch Head Plugin: elasticsearch-head是一个用于浏览和与弹性搜索集群交互的Web前端。

http://mobz.github.io/elasticsearch-head/

 

1.安装head插件

进入到节点elasticsearch-node1/苗条的丝袜路径,并安装插件。

./plugin -install mobz/elasticsearch-head

2. 安装bigdesk

./plugin -install lukas-vlcek/bigdesk

打开head浏览,浏览器输入http://127.0.0.1:9200/_plugin/head/

特别注意:粗框的是主分片,细框的是备份分片。

接下里,我们需要根据官方的https://www.oschina.net/translate/elasticsearch-getting-started?cmp来插入数据

curl -XPUT 'http://127.0.0.1:9200/dept/employee/1' -d '{ "empname": "emp1"}'  

curl -XPUT 'http://127.0.0.1:9200/dept/employee/2' -d '{ "empname": "emp2"}'  

curl -XPUT 'http://127.0.0.1:9200/dept/employee/3' -d '{ "empname": "emp3"}'  

...

搜索 XXX 的文档, 查询条件 #是区分保存数据最开始分类。

在查看以上的搜索的文档里的内容,以dept为例子。

可直接在ES对应的IP:port后加文档的名字获取所有结果,例如   http://127.0.0.1:9200/dept

本人Java出身,而ES是由Java编写,并且在数据量越来越大时,几乎对性能没有影响,所以相比于solr,对ES更情有独钟。

 

相关链接:

https://www.elastic.co/products/elasticsearch

https://www.oschina.net/translate/elasticsearch-getting-started?cmp

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。