全文检索示例:ES用户和索引创建(6)

简介

本文主要介绍两方面知识

  • 创建存放爬取文档的index
  • 创建用于访问ES的用户

索引创建

第一个版本

创建一个名为es_doc_v1(第一个版本)的索引并为索引创建一个别名es_doc

索引字段信息

字段名描述类型分词器
title标题textik_max_word
urlurl地址keyword
content内容textik_max_word
crawlDate爬取时间date
# 创建索引(版本1)
PUT es_doc_v1?include_type_name=false
{
  "settings": {
    "number_of_replicas": 1,
    "number_of_shards": 1,
    "index.highlight.max_analyzed_offset":10000000
  },
  "mappings": {
    "properties": {
      "title":{
        "type": "text",
        "analyzer": "ik_max_word"
      },
      "url":{
        "type": "keyword"
      },
      "content":{
        "type": "text",
        "analyzer": "ik_max_word"
      },
      "crawlDate":{
          "type": "date"
      }
    }
  }
}
# 创建别名
POST /_aliases
{
  "actions" : [
    { "add" : { "index" : "es_doc_v1", "alias" : "es_doc" } }
  ]
}
#别名查看
GET _cat/indices/es*?v

测试数据写入

# 写入测试数据
PUT es_doc/_doc/1
{
  "title":"第一个测试文档",
  "url":"https://www.elastic.co",
  "content":"ElasticSearch是一个基于Lucene的搜索服务器",
  "crawlDate":"2019-10-19T10:17:48.531+08:00"
}
# 查询插入数据
GET es_doc/_search
{
  "query": {
    "match": {
      "_id": "1"
    }
  }
}
# 查询返回数据
{
  "took" : 3,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "es_doc_v1",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 1.0,
        "_source" : {
          "title" : "第一个测试文档",
          "url" : "https://www.elastic.co",
          "content" : "ElasticSearch是一个基于Lucene的搜索服务器",
          "crawlDate" : "2019-10-19T10:17:48.531"
        }
      }
    ]
  }
}

索引版本升级

创建名称为es_doc_v2(第二个版本)的索引对es_doc_v1索引进行升级,并将别名es_doc指向es_doc_v2

第二个版本的索引es_doc_v2中添加如下字段,并将副本数改为0

字段名描述类型分词器
toEsDate写入ES时间date
fileName文件名keyword
# 创建新版本索引es_doc_v2
PUT es_doc_v2?include_type_name=false
{
  "settings": {
    "number_of_replicas": 0,
    "number_of_shards": 1,
    "index.highlight.max_analyzed_offset":10000000
  },
  "mappings": {
    "properties": {
      "fileName":{
        "type": "keyword"
      },
      "title":{
        "type": "text",
        "analyzer": "ik_max_word"
      },
      "url":{
        "type": "keyword"
      },
      "content":{
        "type": "text",
        "analyzer": "ik_max_word"
      },
      "crawlDate":{
          "type": "date"
      },
      "toEsDate":{
          "type": "date"
      }
    }
  }
}

# 将1版本索引中的数据迁移到2版本中
POST _reindex
{
  "source": {
    "index": "es_doc_v1"
  },
  "dest": {
    "index": "es_doc_v2"
  }
}

# 检查测试数据是否迁移到es_doc_v2中
GET es_doc_v2/_search
{
  "query": {
    "match": {
      "_id": "1"
    }
  }
}

# 移除别名执行1版本,添加别名指向2版本
POST /_aliases
{
    "actions" : [
        { "remove" : { "index" : "es_doc_v1", "alias" : "es_doc" } },
        { "add" : { "index" : "es_doc_v2", "alias" : "es_doc" } }
    ]
}

# 别名es_doc中是否有测试数据
GET es_doc/_search
{
  "query": {
    "match": {
      "_id": "1"
    }
  }
}

# 删除1版本的索引
DELETE es_doc_v1

用户创建

创建角色

创建一个名为search_admin的角色,角色具备对es_doc*all权限

在kinana中依次点击管理->角色->创建角色
在这里插入图片描述
输入角色名称并配置索引权限,然后点击创建角色
在这里插入图片描述
创建成功后,右下角会有成功提示,如下图所示
在这里插入图片描述

创建用户

创建一个名为search的用户,具备search_adminkibana_user角色

在kinana中依次点击管理->用户->创建用户
在这里插入图片描述
输入用户名search,密码123456,授权search_admin,kibana_user角色,然后点击创建用户
在这里插入图片描述
用户创建成功后,会在右下角有提示,如下图所示
在这里插入图片描述

测试用户

注销当前用户,然后用search用户登入,在开发工具看能否查询es_doc数据,如下图所示
在这里插入图片描述
至此,索引及用户创建完成

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值