企业级开源搜索引擎:Elasticsearch

一、 概念

Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上。但是Lucene只是一个工具类库,且接口较为复杂。你必须先理解搜索引擎的工作原理,才能有效利用Lucene。ElasticSearch通过隐藏Lucene背后复杂的搜索理论知识,预设了搜索引擎默认的参数,只需要最少的理解,就能快速搭建出搜索引擎,开箱即用。

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/

三、创建索引

四、开始搜索

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容