> 文档中心 > ElasticSearch入门

ElasticSearch入门

全文检索基础

1.什么是全文检索

将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数 据进行搜索,从而达到搜索相对较快的目的。这部分从非结构化数据中提取出的然后重新组织的信息, 我们称之索引。 例如:字典。字典的拼音表和部首检字表就相当于字典的索引,对每一个字的解释是非结构化的,如果 字典没有音节表和部首检字表,在茫茫辞海中找一个字只能顺序扫描。然而字的某些信息可以提取出来 进行结构化处理,比如读音,就比较结构化,分声母和韵母,分别只有几种可以一一列举,于是将读音 拿出来按一定的顺序排列,每一项读音都指向此字的详细解释的页数。我们搜索时按结构化的拼音搜到 读音,然后按其指向的页数,便可找到我们的非结构化数据——也即对字的解释。 这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search)。 虽然创建索引的过程也是非常耗时的,但是索引一旦创建就可以多次使用,全文检索主要处理的是查 询,所以耗时间创建索引是值得的。

2.全文检索流程

 

3.相关概念

  1. 索引库 索引库就是存储索引的保存在磁盘上的一系列的文件。里面存储了建立好的索引信息以及文档对象

  2. 一个索引库相当于数据库中的一张

  3. document对象 获取原始内容的目的是为了索引,在索引前需要将原始内容创建成文档(Document),文档中包括一 个一个的域(Field),域中存储内容。每个文档都有一个唯一的编号,就是文档id。

  4.  

     

    document对象相当于表中的一条记录

  5. field对象 如果我们把document看做是数据库中一条记录的话,field相当于是记录中的字段。field是索引库中存 储数据的小单位。field的数据类型大致可以分为数值类型和文本类型,一般需要查询的字段都是文本 类型的,field的还有如下属性: · 是否分词:是否对域的内容进行分词处理。前提是我们要对域的内容进行查询。

  6. term对象 从文档对象中拆分出来的每个单词叫做一个Term,不同的域中拆分出来的相同的单词是 不同的term。term中包含两部分一部分是文档的域名,另一部分是单词的内容。term是创建索引 的关键词对象

  7. ​ · 是否索引:将Field分析后的词或整个Field值进行索引,只有索引方可搜索到。

    比如:商品名称、商品简介分析后进行索引,订单号、身份证号不用分词但也要索引,这些将来都 要作为查询条件。 是否存储:将Field值存储在文档中,存储在文档中的Field才可以从Document中获取 比如:商品 名称、订单号,凡是将来要从Document中获取的Field都要存储。

  8. term对象 从文档对象中拆分出来的每个单词叫做一个Term,不同的域中拆分出来的相同的单词是 不同的term。term中包含两部分一部分是文档的域名,另一部分是单词的内容。term是创建索引 的关键词对象

ElasticSearch简介

Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检 索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用 Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏 Lucene的复杂性,从而让全文搜索变得简单。

 

**ElasticSearch相关概念(术语)**

Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。 然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对 文档(而非成行成列的数据)进行索引、搜索、排序、过滤。Elasticsearch比传统关系型数据库如下:

 

 

 

 

 

ElasticSearch安装

本章节将采用Docker安装,由于windows安装es非常简单,这里不再重复

  1. docker镜像下载

     2. 安装es容器

 

9200端口(Web管理平台端口) 9300(服务器默认端口)

浏览器输入地址访问:`http://192.168.52.128:9200/

  1. 开启远程安装

上面完成安装后,es并不能正常使用,elasticsearch从5版本以后默认不开启远程连接,程序直接连接 会报如下错误:

 

我们需要修改es配置开启远程连接,代码如下:

登录容器

 查看目录结构 输入: dir

 进入config目录

 查看文件

  修改elasticsearch.yml文件

  vi命令无法识别,因为docker容器里面没有该命令,我们可以安装该编辑器。 设置apt下载源

  安装vim编辑器

  安装好了后,修改elasticsearch.yml配置,如下图:

 同时添加下面一行代码:

 

系统参数配置 重启后发现重启启动失败了,这时什么原因呢?这与我们刚才修改的配置有关,因为elasticsearch在启 动的时候会进行一些检查,比如最多打开的文件的个数以及虚拟内存区域数量等等,如果你放开了此配 置,意味着需要打开更多的文件以及虚拟内存,所以我们还需要系统调优

修改vi /etc/security/limits.conf ,追加内容 (nofile是单个进程允许打开的最大文件个数 soft nofile 是 软限制 hard nofile是硬限制 )

  跨域配置 修改elasticsearch/config下的配置文件:elasticsearch.yml,增加以下三句命令,并重启:

 

ElasticSearch入门 创作打卡挑战赛 ElasticSearch入门 赢取流量/现金/CSDN周边激励大奖