ES 学习笔记
Linux 安装ES及Kibana(7.17.4版本)
ES基本使用
ES是一个基于Apache的开源索引库Lucene而构建的 开源、分布式、具有RESTful接口的全文搜索引擎, 还是一个分布式文档数据库.
基本概念
-
index
索引是具有相似结构的文档的集合, 比如可以有一个商品分类索引, 订单索引.
每个索引都要有唯一的名称, 名称要小写, 通过索引名称来执行索引、搜索、更新和删除等操作.
一个集群中可以有任意多个索引, 只要保证名称不同即可 -
document
文档是存储在ES中的一个个JSON格式的字符串, 是ES索引中的最小数据单元, 由field(字段)构成.
ES是一个非结构化的数据库,每个文档可以有不同的字段,并且有一个唯一标识. -
field
字段可以是一个简单的值(如字符串、数字、日期), 也可以是一个数组, 还可以嵌套一个对象或多个对象.
字段类似于关系数据库中表数据的列, 每个字段都对应一个类型.
可以指定如何分析某一字段的值, 即对field指定分词器 -
type
一个索引中,可以定义一个或者多个类型(7.x版本中被废弃,8.x版本中已移除) -
text
文本是field类型的一种, 通常会被分析成多个Term, 存储在ES的索引库中. -
mapping
类似于关系数据库中的Table结构, 每个index都有一个映射: 定义索引中每个字段的类型.
所有文档在写进索引之前都会先进行分析, 如何对文本进行分词、哪些词条又会被过滤, 这类行为叫做映射(mapping).
映射可以提前定义, 也可以在第一次存储文档时自动识别. -
analysis
将文本转换为索引词的过程, 分析的结果依赖于分词器
基本原理
倒排索引
正排索引通过记录id查询内容记录;通过内容关键词获取记录id。
ES写入数据时,会把数据进行分词,把每一个分词的结果与文档进行关联,再把相同的词所关联的文档进行合并,建立倒排索引。
记录关键词位置可以对关键词进行飘红处理
相关技术
Luence 是Apache基于Java编写的信息搜索工具包(jar包),它包含了索引结构、读写索引工具、相关性工具、排序等功能,因此Lucene的使用需要我们进一步开发搜索引擎系统, 如数据获取、解析、分词等
Solr 是一个有HTTP接口的基于Lucene的查询服务器,是一个搜索引擎系统,系统封装了很多lucene细节,Solr可以直接利用HTTP GET/POST 请求去查询,维护修改索引。Solr利用zookeeper进行分布式管理,它的实现更加全面,官方提供的功能更多。文章来源:https://www.toymoban.com/news/detail-422103.html
Elasticsearch 是一个建立在全文搜索引擎Apache Lucene基础上的搜索引擎,采用的策略师分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。es的实时搜索性比solr更好文章来源地址https://www.toymoban.com/news/detail-422103.html
到了这里,关于Elasticsearch(ES) 基本知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!