ElasticSearch速学 - 自定义分析器、备份和恢复索引数据
2017-04-20 11:44
465 查看
我们前面对ElasticSearch搜索api里的分析器、分词、分词过滤器、字符过滤器有了一个简单的学习,实际上在我们正式使用当中肯定要自定义分析器,系统自带的分析器可能是不能满足我们的业务需求。
我们还可能使用一些第三方的分词器,比如我们的中文分词怎么分。
https://www.elastic.co/guide/en/elasticsearch/reference/5.3/analysis-custom-analyzer.html
回顾我们之前创建索引的方式:
这样会自动创建索引
我们先来学习一个“备份”功能,我们在实际开发当中需要对数据进行一个备份。
https://www.elastic.co/guide/en/elasticsearch/reference/5.3/modules-snapshots.html
按照官方文档,我们要先创建一个仓库,备份的东西全部放在这个仓库文件夹里面。
(因为我这里2个节点都在一个服务器上,所以不需要配置共享文件夹。实际生产环境肯定是多台服务器,仓库目录需要共享)
1、配置仓库路径
说明:
配置好
2、补充知识:关于重启kibana
可以看到进程id,
3、创建仓库
创建一个名为
执行结果如下:
同时我们也发现
但是
创建了仓库,我们就可以来获取这个仓库信息:
4、开始备份索引
现在我们来看看
索引还存在的。
下面删除索引:
删除索引之后:
诶,删掉索引之后,我们现在可以重新创建索引了(加入分析器的方式)
https://www.elastic.co/guide/en/elasticsearch/reference/5.3/analysis-custom-analyzer.html
我们可以查看刚才创建的索引的设置:
1、关掉索引
2、正式恢复备份
https://www.elastic.co/guide/en/elasticsearch/reference/5.3/modules-snapshots.html
3、打开索引
最后我们发现之前备份的数据确实恢复啦:
我们还可能使用一些第三方的分词器,比如我们的中文分词怎么分。
自定义分析器
官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/5.3/analysis-custom-analyzer.html
回顾我们之前创建索引的方式:
PUT blog/users/101 { "name":"jack" }
这样会自动创建索引
blog以及类型
users,其实这样是不太好的,正式创建的时候其实应该对一些更详细的信息进行设置:比如我们要设置好一个分析器,如果我们是中文内容,那么我们肯定要使用一些中文分词插件。如果没有中文,那么就没有必要使用中文分词器,所以我们可以针对不同的类型来使用不同的分词器。
备份索引
出现上面索引已经存在的问题怎么办呢?我们需要把这个索引给删掉(我们之间创建的索引没有指定分析器)。我们先来学习一个“备份”功能,我们在实际开发当中需要对数据进行一个备份。
https://www.elastic.co/guide/en/elasticsearch/reference/5.3/modules-snapshots.html
按照官方文档,我们要先创建一个仓库,备份的东西全部放在这个仓库文件夹里面。
(因为我这里2个节点都在一个服务器上,所以不需要配置共享文件夹。实际生产环境肯定是多台服务器,仓库目录需要共享)
1、配置仓库路径
#每个节点elasticsearch.yml加入: path.repo: ["/home/admin/esbackup"]
说明:
admin是我这里登录用户名,也是运行es实例等用户名。另外不要忘记在该目录下创建
esbackup目录。
配置好
path.repo之后,我们需要重启所有节点。
2、补充知识:关于重启kibana
fuser -n tcp 5601
可以看到进程id,
kill -9 进程ID杀掉。
fuser可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、网络端口,并给出程序进程点详细信息(具体用法百度)。
3、创建仓库
PUT /_snapshot/mybackup { "type": "fs", "settings": { "location": "/home/admin/esbackup/blog" } }
创建一个名为
mybackup的仓库,位置是
/home/admin/esbackup/blog,其中的
blog是索引,给这个索引备份。
执行结果如下:
{ "acknowledged": true }
true代表创建成功。
同时我们也发现
esbackup目录下多了一个
blog目录。
但是
blog目录里什么都没有,是空的。
创建了仓库,我们就可以来获取这个仓库信息:
GET /_snapshot/mybackup #注意`mybackup`是我们上面创建仓库的名称
4、开始备份索引
wait_for_completion=true #备份本来是异步的,加这个参数就是我们需要等待备份完成的结果 #实际开发数据流大,不会这样搞 #我们这里学习演示 需要
现在我们来看看
/home/admin/esbackup/blog目录下,就多了一些文件了:
恢复索引之前,我们先删除索引
索引还存在的。
下面删除索引:
删除索引之后:
诶,删掉索引之后,我们现在可以重新创建索引了(加入分析器的方式)
https://www.elastic.co/guide/en/elasticsearch/reference/5.3/analysis-custom-analyzer.html
PUT blog { "settings": { "analysis": { "analyzer": { "my_custom_analyzer": { "type": "custom", "tokenizer": "standard", "char_filter": [ "html_strip" ], "filter": ["lowercase"] } } } } }
我们可以查看刚才创建的索引的设置:
恢复备份
现在我们把之前删掉的数据恢复出来(我们已经备份了)1、关掉索引
POST blog/_close
2、正式恢复备份
https://www.elastic.co/guide/en/elasticsearch/reference/5.3/modules-snapshots.html
POST _snapshot/mybackup/bak1/_restore?wait_for_completion=true { "indices": "blog" }
3、打开索引
POST blog/_open
最后我们发现之前备份的数据确实恢复啦:
相关文章推荐
- Elasticsearch之重要核心概念(cluster(集群)、shards(分配)、replicas(索引副本)、recovery(据恢复或叫数据重新分布)、gateway(es索引的持久化存储方式)、discovery.zen(es的自动发现节点机制机制)、Transport(内部节点或集群与客户端的交互方式)、settings(修改索引库默认配置)和mappings)
- logstash发送数据给ElasticSearch,自定义索引(填坑)
- elasticsearch1.0 升级2.2的数据备份和恢复
- Cloudera 5.8.3 SolrCloud+HDFS的索引数据备份和恢复。(需重启solr进程。)
- 如何备份ElasticSearch索引数据到HDFS上
- elasticsearch数据备份与还原恢复
- Elasticsearch之创建索引、删除索引、索引设置、配置分析器、自定义分析器。
- ElasticSearch数据备份与恢复
- 如何备份ElasticSearch索引数据到HDFS上
- elasticsearch数据备份恢复
- elasticsearch 1.0 升级2.2的数据备份和恢复
- elasticsearch数据备份与还原恢复
- 系统损坏,移植Oracle(9.2.0.1)数据库(无备份数据文件进行恢复)
- 注册表故障恢复 必须使用记录或另一备份以恢复包含系统注册表数据的文件。恢复成功
- Sql server数据备份的三个恢复模型
- SQL数据备份和恢复模块
- 网络数据的备份和恢复
- ArcSDE中空间数据的备份与恢复
- ArcSDE 中空间数据的备份与恢复
- 备份与恢复Win2003的AD数据库