1 简介
Elasticsearch是一个基于Lucene库的搜索引擎。
它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。Elasticsearch是用Java开发的,并在Apache许可证下作为开源软件发布。
官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。
根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。
Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。”Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。“相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引,就不能更改主分片的数量。
Elasticsearch使用Lucene,并试图通过JSON和Java API提供其所有特性。它支持facetting和percolating,如果新文档与注册查询匹配,这对于通知非常有用。
另一个特性称为“网关”,处理索引的长期持久性;例如,在服务器崩溃的情况下,可以从网关恢复索引。Elasticsearch支持实时GET请求,适合作为NoSQL数据存储,但缺少分布式事务。
2 需求
想要爬取一个网站或者程序 ,希望添加搜索功能, 发现搜索工作很难:
- 我们希望搜索解决方案要高效
- 我们希望零配置和完全免费的搜索方案
- 我们希望能够简单的通过json和http与搜索引擎交互
- 我们希望我们的搜索服务器稳定
- 我们希望能够简单的将一台服务器扩 展到上百台
3 用户
4 关系数据库搜索的缺点
1.无法打分
2.无分布式
3.无法解析搜索请求
4.效率低
5.分词
5 下载
- brew info elasticsearch
各文件位置
代码语言:txt复制Data: /usr/local/var/lib/elasticsearch/elasticsearch_sss/
Logs: /usr/local/var/log/elasticsearch/elasticsearch_sss.log
Plugins: /usr/local/var/elasticsearch/plugins/
Config: /usr/local/etc/elasticsearch/
启动
代码语言:txt复制To have launchd start elasticsearch now and restart at login:
brew services start elasticsearch
Or, if you don't want/need a background service you can just run:
elasticsearch
代码语言:txt复制Config: /usr/local/etc/kibana/
代码语言:txt复制To have launchd start kibana now and restart at login:
brew services start kibana
Or, if you don't want/need a background service you can just run:
kibana
- 设置ES允许数据交换
- 主机
- 设置集群的主机列表,仅限于本地单机
更多内容请关注公众号:JavaEdge