Elasticsearch学习
概述
ElasticSearch,简称es,es是一个开源的高拓展的分布式全文检索引擎,它可以近乎实施的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用java开发并使用Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
windows下安装es
es官网下载
下载解压,在bin目录启动elasticsearch.bat,浏览器访问127.0.0.1:9200,若得到以下信息则安装成功 可视化界面elasticsearch-head
下载解压,在根目录cmd,输入npm run start 启动
浏览器输入:localhost:9100
kibana安装
下载解压,bin目录下启动kibana.bat
启动成功后,浏览器输入:http://localhost:5601
es核心概念
elasticsearch是面向文档,关系型数据库和elasticsearch客观的对比!一切都是json
Relational DB | Elasticsearch |
---|
数据库(database) | 索引(indices) | 表(tables) | types | 行(rows) | documents | 字段(columns) | fields |
index/type/id
倒排索引
适用于快速的全文搜索,一个索引由文档中所有不重复的列表构成,对于每一个词,都有一个包含它的文档列表。
Study every day, good good up to forever # 文 档1包含的内容 To forever, study every day,good good up # 文档2包含的内容
ik分词器
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如“我爱你”会被分为"我",“爱”,“你” ,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。
提供了两个分词算法: ik_ smart和ik_ max_ word ,其中ik_ smart为最少切分, ik_ max_ _word为最细粒度划分。
安装ik分词器:
命令模式的使用
rest风格
method | url地址 | 描述 |
---|
PUT | localhost:9200/索引名称/类型名称/文档id | 创建文档(指定文档id) | POST | localhost:9200/索引名称/类型名称 | 创建文档(随机文档id) | POST | localhost:9200/索引名称/类型名称/文档id/_update | 修改文档 | DELETE | localhost:9200/索引名称/类型名称/文档id | 删除文档 | GET | localhost:9200/索引名称/类型名称/文档id | 通过文档id查询文档 | POST | localhost:9200/索引名称/类型名称/_search | 查询所有的数据 |
|