概念
全文检索
从文本或数据库中、不限定数据字段、自由的萃取出信息的技术
运行全文检索任务的程序,一般称作搜索引擎,它将用户随意输入的文字,试图从数据库中,找到匹配的内容。
维基百科
全文搜索和数据库搜索有什么不同?
全文搜索和数据库搜索最大的一个不同是,你可以搜索出来不是完全包含搜索词的内容。这样的话,如果用户使用的搜索词不精确,也可以搜索到内容。(说白了就是一个分词)
举个栗子,假设有一个外卖App,我现在想吃新奥尔良鸡翅,我搜索新奥尔良鸡翅。现在假设这个外卖App里面,有一家商家提供该产品。但是他的名字叫新奥尔良烤鸡翅,如果使用传统的数据库搜索,那么是搜索不到这个产品的。而全文搜索则可以
Lucene
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
elasticsearch
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎
Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它:
- 分布式的实时文件存储,每个字段都被索引并可被搜索
- 分布式的实时分析搜索引擎
- 可以扩展到上百台服务器,处理PB级结构化或非结构化数据
elasticsearch版本问题
其实,elasticsearch5.x 和 elasticsearch2.x 并不区别很大。
elasticsearch5.x 按理来说是elasticsearch3.x,只是为了跟随ELK整体版本的统一
ELK、是 Elasticsearch 、 Logstash 、 Kibana 三个产品的首字母缩写
Solr vs. Elasticsearch
Apache Solr基于业界大名鼎鼎的java开源搜索引擎Lucene
Elasticsearch在Solr推出几年后才面世的,通过REST和schema-free(不需要预先定义 Schema,solr是需要预先定义的)的JSON文档提供分布式、多租户全文搜索引擎
请记住:
- Elasticsearch由于其易用性而在较新的开发人员中更受欢迎
- 但是如果你已经在使用solr了,请继续使用它,因为迁移到Elasticsearch并不会带来具体的优势
- 如果您需要它来处理分析查询以及搜索文本,Elasticsearch是更好的选择,特别是收集日志,做分析处理
核心概念
- near realtime nrt 近实时的 近实时(Elasticsearch 是有小延迟的,一般为 1 秒,一般情况是感受不到这个延迟的)
- Node:节点,归属集群。如果整个集群就一个节点,那这个节点也就是这个集群本身。节点也有名称(默认是在启动的时候随机分配的 UUID),节点名称也可以自定义,一般都建议自定义,节点名称很重要编译运维中进行管理
- Index:索引,类似数据库结构中的库,是一堆 document 的集合。索引名称必须全部是小写,不能用下划线开头,不能包含逗号,推荐格式:youmeek_index。
- Type:类型,类似数据库结构中的表。现在已经废弃
- Document:文档,Elasticsearch 中的最小数据单元,类似数据库结构中的一行数据。所以一行数据中也会有多个 field 也就是字段。Document 通常用 JSON 格式来表示。
- Shard:分片。全称 primary shards(一般用在写操作)。Elasticsearch 可以将一个 Index 中的 Document 数据切分为多个 shard,分布在多台服务器上存储。每个 shard 都是一个 Lucene index,最多能有 Document 这么多(官网原文):the limit is 2147483519 (Integer.MAX_VALUE - 128) documents
https://www.zhuxichi.com/2017/02/21/SearchEngineTutorial01/
https://zh.wikipedia.org/wiki/%E5%85%A8%E6%96%87%E6%AA%A2%E7%B4%A2
https://baike.baidu.com/item/elasticsearch/3411206?fr=aladdin
https://blog.csdn.net/qq_24365213/article/details/78119653
https://www.cnblogs.com/xiaoqi/p/solr-vs-elasticsearch.html
https://github.com/judasn/Elasticsearch-Tutorial-zh-CN/blob/master/elasticsearch-base/README-1.md?tdsourcetag=s_pctim_aiomsg
网友评论