一、 概念
Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上。
但是Lucene只是一个工具类库,且接口较为复杂。你必须先理解搜索引擎的工作原理,才能有效利用Lucene。
ElasticSearch通过隐藏Lucene背后复杂的搜索理论知识,预设了搜索引擎默认的参数,只需要最少的理解,就能快速搭建出搜索引擎,开箱即用。
ElasticSearch基本概念
1. 索引(Index)
ElasticSearch的Index类似于关系型数据库的Database,用来存储各种类型的文档。一个索引应该是因共同的特性被分组到一起的文档集合。
以Google作为栗子,我们可以把Index理解为Google所抓取网页(文档)存储的地方。
2. 类型(Type)
Type类似于关系型数据库的Table,用来存储相似文档的地方。
以Google作为栗子,我们可以把网页、图片、视频等不同类型的搜索,存放在不同的Type里面。
3. 文档(Document)
Document类似于关系型数据库里面的Row,存储具体的一个对象。
ElasticSearch的文档是以JSON格式存储的。形如:
以Google作为栗子,一个网页就是一个文档。
4. 字段(Field)
Field类似于关系型数据库的Column,存储某一个具体的属性。
以Google作为栗子,网页的标题(Title)就是一个字段。
注意:
ElasticSearch的Type与传统关系型数据库的Table不一样的地方在于:同一个Index下的Type,名称相同的Field,类型要保持一致。
以Google作为栗子,当Google把网页类型的文档和图片类型的文档都存储在同一个Index下面时,假设网页和图片都有一个Title属性,那么在同一个Index下面,这两个属性的类型必须保持一致,比如必须都是String类型的。因为ElasticSearch更倾向于存储同构类型的文档。
二、环境搭建
下载安装包,并解压到/opt目录下
编辑elasticsearch.yml文件
vim /opt/elasticsearch-2.4.4/config/elasticsearch.yml
启动项目
安装head插件
打开浏览器访问页面:http://192.168.204.151:9200/_plugin/head/
三、创建索引
四、开始搜索