共计 3080 个字符,预计需要花费 8 分钟才能阅读完成。
一、简介
1、当初支流的搜索引擎大略就是:Lucene,Solr,ElasticSearch。
它们的索引建设都是依据倒排索引的形式生成索引,何谓倒排索引?(倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引办法,被用来存储在全文搜寻下某个单词在一个文档或者一组文档中的存储地位的映射。它是文档检索系统中最罕用的数据结构。)
2、Lucene 是一个 Java 全文搜索引擎,齐全用 Java 编写。Lucene 不是一个残缺的应用程序,而是一个代码库和 API,复杂性较高。
3、Solr,ElasticSearch 都是基于 Lucene。
4、Solr 简介
Solr 是 Apache 下的一个顶级开源我的项目,采纳 Java 开发,它是基于 Lucene 的全文搜寻服务器。Solr 提供了比 Lucene 更为丰盛的查询语言,同时实现了可配置、可扩大,并对索引、搜寻性能进行了优化
Solr 能够独立运行,运行在 Jetty、Tomcat 等这些 Servlet 容器中,Solr 索引的实现办法很简略,用 POST 办法向 Solr 服务器发送一个形容 Field 及其内容的 XML 文档,Solr 依据 xml 文档增加、删除、更新索引。Solr 搜寻只须要发送 HTTP GET 申请,而后对 Solr 返回 Xml、json 等格局的查问后果进行解析,组织页面布局。Solr 不提供构建 UI 的性能,Solr 提供了一个治理界面,通过治理界面能够查问 Solr 的配置和运行状况。solr 是基于 lucene 开发企业级搜寻服务器,实际上就是封装了 lucene。
5、Elasticsearch 简介
Elasticsearch 是一个实时分布式搜寻和剖析引擎。它让你以前所未有的速度解决大数据成为可能。它用于全文搜寻、结构化搜寻、剖析以及将这三者混合应用:维基百科应用 Elasticsearch 提供全文搜寻并高亮关键字,以及输出实时搜寻 (search-asyou-type) 和搜寻纠错 (did-you-mean) 等搜寻倡议性能。英国卫报应用 Elasticsearch 联合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时理解公众对新发表的文章的回应。StackOverflow 联合全文搜寻与地理位置查问,以及 more-like-this 性能来找到相干的问题和答案。Github 应用 Elasticsearch 检索 1300 亿行的代码。然而 Elasticsearch 不仅用于大型企业,它还让像 DataDog 以及 Klout 这样的守业公司将最后的想法变成可扩大的解决方案。Elasticsearch 能够在你的笔记本上运行,也能够在数以百计的服务器上解决 PB 级别的数据。Elasticsearch 是一个基于 Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有畛域,Lucene 能够被认为是迄今为止最先进、性能最好的、性能最全的搜索引擎库。然而,Lucene 只是一个库。想要应用它,你必须应用 Java 来作为开发语言并将其间接集成到你的利用中,更蹩脚的是,Lucene 非常复杂,你须要深刻理解检索的相干常识来了解它是如何工作的。Elasticsearch 也应用 Java 开发并应用 Lucene 作为其外围来实现所有索引和搜寻的性能,然而它的目标是通过简略的 RESTful API 来暗藏 Lucene 的复杂性,从而让全文搜寻变得简略。
6、Elasticsearch 和 Solr 比拟
7、ElasticSearch vs Solr 总结
(1)es 根本是开箱即用,非常简单。Solr 装置稍微简单一丢丢
(2)Solr 利用 Zookeeper 进行分布式治理,而 Elasticsearch 本身带有分布式协调治理性能。
(3)Solr 反对更多格局的数据,比方 JSON、XML、CSV,而 Elasticsearch 仅反对 json 文件格式。
(4)Solr 官网提供的性能更多,而 Elasticsearch 自身更重视于外围性能,高级性能多有第三方插件提供,例如图形化界面须要 kibana 敌对撑持
(5)
Solr 查问快,但更新索引时慢(即插入删除慢),用于电商等查问多的利用;
ES 建设索引快(即查问慢),即实时性查问快,用于 facebook 新浪等搜寻。
Solr 是传统搜寻利用的无力解决方案,但 Elasticsearch 更实用于新兴的实时搜寻利用。
(6)Solr 比拟成熟,有一个更大,更成熟的用户、开发和贡献者社区,而 Elasticsearch 绝对开发维护者较少,更新太快,学习应用老本较高。
二、装置
1、装置 elasticsearch kibana
https://www.elastic.co/cn/start
官网间接下载
2、装置 elasticsearch head
2.1、办法一 github + vue 环境
https://github.com/mobz/elasticsearch-head
前端可视化我的项目,须要 vue 环境,nodejs,python2
2.2、办法二 谷歌浏览器插件 elasticsearch-head
链接: https://pan.baidu.com/s/1SF66oKMULVCgcg0hCWAa6Q 明码: o4kd
2.3、申明
jdk1.8 以上 最低要求
三、相熟目录
bin 启动文件
config 配置文件
log4j2.properties 日志配置
elasticsearch.yml es 自身配置文件 默认端口 9200,跨域问题
jvm.options jvm 配置文件 -java 虚拟机配置文件
jvm.options.d directory containing these lines:
### 这里须要留神 启动所需内存大小,Linux 或者服务器部署时候
## -Xms4g
## -Xmx4g
lib 相干 jar 包,log4j,lucene
modules 功能模块
plugins 插件 ik
logs 日志
四、启动
1、装置即用 关上 bin/elasticsearch
2、http://localhost:9200/
3、返回释义
{
"name" : "AsuradeMacBook-Pro.local",
"cluster_name" : "elasticsearch", // 默认集群名称
"cluster_uuid" : "JEvgzCTrQFuAvk9MBkm6lA",// 默认集群 id
"version" : {
"number" : "7.13.1",//es 版本
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "9a7758028e4ea59bcab41c12004603c5a7dd84a9",
"build_date" : "2021-05-28T17:40:59.346932922Z",
"build_snapshot" : false,
"lucene_version" : "8.8.2",//lucene 版本
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search" // 规范语音 相似 hello word
}
4、es 可视化界面 es-head 装置好;此处应用插件
5、如果应用 es-head 我的项目,存在跨域问题,解决配置 es.yml
# 跨域设置
http.cors.enabled:true
http.cors.allow-origin:"*"
正文完
发表至: elasticsearch
2021-06-13