安装ElasticSearcha

安装ElasticSearcha
学习ES也有快一个月了,但是学习的时候一直没有总结。以前没有总结是因为感觉不会的很多,现在对ES有一点了解了。索性就从头从安装到使用ES做一个详细的总结,也分享给其他人供他人学习

首先咱们要官网上去下载ES的安装包,推荐下载Linux版的,要是windos 用户可以自己安装一个虚拟机。因为在生产环境或者真正的开发下ES都是步骤在Linux系统中。
https://www.elastic.co/downloads/elasticsearch ,上es的官网上,我们下载t它的解压包。
或者我们可以服务器上 使用Linux的下载命令

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.tar.gz
我们可以先创建一个文件夹,在这个文件夹下面是我们ES的目录

mkdir elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.tar.gz

tar -vxf elasticsearch-6.0.0.tar.gz
解压之后我们将看到一个ES的文件夹,我们现在进入到这个文件夹下面看看里面是什么样的结构。
下面我们将介绍ES目录下面几个文件夹的用处

bin/
config/ //ES配置文件的目录
lib/ //依赖的第三方库的目录
LICENSE.txt
modules/ //模块目录
NOTICE.txt
plugins/ //第三方插件的目录
README.textile

在我们启动之前,我们需要检查JDK的版本,因为ES5.x以后需要高版本的JDK
现在我们的前期准备也已经做完了,我们现在就要qidong ES服务器了
在当前的这个目录下面使用下面的这个命令

sh ./ bin/elasticsearch

随着dos界面闪过的日志,我们无法知道我们的ES服务器是否启动了。
在启动完成后,我们可以通过在浏览器上访问栏判断ES是否正常启动
在浏览器上输入这样的

127.0.0.1:9200
要是浏览器上显示出信息,说明我们的ES 服务器就启动成功了

ES 记录之如何创建一个索引映射,以及一些设置
** 初始化其映射**

PUT /my_index/_mapping/my_type
{
"my_type": {//索引字段
"properties": {//
"english_title": {
"type": "string",//字段的类型,string类型
"analyzer": "english"//分析方式
}
}
}
}
//上面这种方式,是以前旧的方式。现在都使用这种的方式创建字段

PUT /my_index/_mapping/my_type
{
"my_type": {
"properties": {
"english_title": {
"type": "keyword" //不分词结构,
}
}
}
}
//type也有分词索引结构的字段,就是text类型的字段
ES中的基本数据类型有

字符串 string
数字类型 long integer double 等
日期 date
布尔类型 boolean
二进制 binary
复杂的数据类型
数组类型
对象类型
嵌套类型 netsted
地理数据类型
专门数据类型
ipv4
完成数据类型
单词计数类型
同样我们可以使用其他数据类型来构建我们的数据映射
我们在创建索引时,也可以指定其他的设置,例如自定义分片方式

PUT /my_temp_index

{
"settings": {
"number_of_shards" : 1,//主分片数量
"number_of_replicas" : 0//副分片数量
}
}
我们也可以在创建索引,同时自定义分词结构

PUT /product
{
"settings": {
"analysis": {
"analyzer": {
"defalut": {
"tokenizer": "ik_max_word"
},
"pinyin_analyzer": {
"tokenizer": "my_pinyin"
}
},
"tokenizer": {
"my_pinyin": {
"keep_first_letter": false,
"keep_full_pinyin": true,
"keep_original": false,
"keep_separate_first_letter": false,
"limit_first_letter_length": 16,
"lowercase": true,
"type": "pinyin"
}
}
}
}
},

ES 中 Text keyword 两种基本类型区别
string字段被拆分成两种新的数据类型: text用于全文搜索的, 而keyword用于关键词搜索.
字符串将默认被同时映射成text和keyword类型,就像下面的这种结构
动态映射(dynamic mappings)

       "name": {
          "type": "text",
          "fields": {
             "keyword": {
                "type": "keyword",
                "ignore_above": 256
             }
          }
       }

于这个映射你即可以在foo字段上进行全文搜索, 也可以通过foo.keyword字段实现关键词搜索及数据聚合
如何将新旧的版本迁移
全文索引的字段

{
"foo": {
"type": "string",
"index": "analyzed"
}
}

{
"foo": {
"type": "text",
"index": true
}
}
不索引 关键词搜索

{
"foo": {
"type": "string",
"index": "not_analyzed"
}
}

{
"foo": {
"type": "keyword",
"index": true
}
}

原文地址:https://www.cnblogs.com/xieting/p/11325507.html