【郑州校区】ElasticSearch 基本操作入门 推荐书籍 : 《Elasticsearch服务器开发(第2版).pdf 》 《Elasticsearch权威指南(中文版).pdf》 全文检索: 针对文本中每个词,创建词条建立索引,进行搜索。 ElasticSearch 操作服务器上的数据,通过 Rest API 操作数据 Elasticsearch可以作为一个独立的单个搜索服务器。不过,为了能够处理大型数据集,实现容错和高可用性,Elasticsearch可以运行在许多互相合作的服务器上。这些服务器称为集群(cluster),形成集群的每个服务器称为节点(node)。 如果操作Elasticsearch上数据,访问提供Rest API的URL地址,传递json数据给服务器 1.1. ElasticSearch 基础 数据架构的主要概念 图解 索引对象(blob): 存储数据的表结构 ,任何搜索数据,存放在索引对象上 。 映射(mapping): 数据如何存放到索引对象上,需要有一个映射配置, 包括:数据类型、是否存储、是否分词 … 等。 文档(document): 一条数据记录, 存在索引对象上 文档类型(type): 一个索引对象 存放多种类型数据,数据用文档类型进行标识 【后续编程】: 第一步:建立索引对象
第二步:建立映射
第三步:存储数据【文档】
第四步:指定文档类型进行搜索数据【文档】
1.2. Elasticsearch与Mysql对比Elasticsearch 集群可以包含多个索引(Index),每个索引可以包含多个类型(Type),每个类型可以包含多个文档(Document),每个文档可以包含多个字段(Field)。以下是 MySQL 和 Elasticsearch 的术语类比图,帮助理解: 就像使用 MySQL 必须指定 Database 一样,要使用 Elasticsearch 首先需要创建 Index: client.indices.create({index : 'blog'}); 这样就创建了一个名为 blog的 Index。Type 不用单独创建,在创建 Mapping 时指定就可以。Mapping 用来定义 Document 中每个字段的类型,即所使用的 analyzer、是否索引等属性,非常关键等。创建 Mapping 的代码示例如下: [AppleScript] 纯文本查看 复制代码 client.indices.putMapping({
index : 'blog',
type : 'article',
body : {
article: {
properties: {
id: {
type: 'string',
analyzer: 'ik',
search_analyzer: 'ik',
},
title: {
type: 'string',
analyzer: 'ik',
search_analyzer: 'ik',
},
content: {
type: 'string',
analyzer: 'ik',
search_analyzer: 'ik',
}
}
}
}
}); 传智播客·黑马程序员郑州校区地址 河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
|