以最快速度启动,使其能够在亚马逊Elasticsearch服务上进行搜索

起初

为了实现尝试开始,我将解释如何以最短路径创建能实现全文搜索的Elasticsearch状态。我们将使用亚马逊Elasticsearch服务。关于亚马逊Elasticsearch服务,请参考下面的部分。

大致的步骤如下:

    1. 在AWS上构建Elasticsearch服务环境

 

    通过Kibana将数据注入Elasticsearch

这就是了。

创建环境

    • パブリックに公開されたシングルインスタンスのElastisearch環境(URLにはランダムな文字列が入ります)

 

    • インターネットから検索可能で、管理操作は特定IPアドレスからのみに制限

 

    • t2.smallインスタンスを使い無料枠内(他サービスを使っていなければ)

 

    Elasticsearchのバージョンは7.1

准备工作。

    • インデックス名を決めておく(Elasticsearchのインデックスはデータの入れ物となるもので、RDBのDB名にあたるものです。)

 

    • ドメイン名を決めておく(Amazon Elasticsearchでのドメイン名は、Elasticsearchクラスターを識別する名前で、1つのURLを持ちます。この下にElasticsearchの複数のインデックスを持つことができます。)

 

    管理アクセスをするPCのグローバルIPアドレスを確認しておく

步骤

在AWS上构建一个Elasticsearch服务环境。

基本上,只需添加域名,选择开发和测试环境,指定实例大小,并设置访问策略,其他都使用默认设置。

    1. 登录AWS管理控制台并切换到东京区域(ap-northeast-1)。

 

    1. 点击”创建新域”按钮。

 

    1. 在”选择部署类型”中选择”开发与测试”(单区域模式)。

 

    1. “版本”保持默认设置。

 

    1. 点击”下一步”按钮。

 

    1. 在”配置域”中输入预先决定的域名。

 

    1. 在”数据节点”中选择t2.small.elasticsearch,并将节点数量设为1。

 

    1. “数据节点存储”保持默认设置为1个实例。

 

    1. 不启用专用主节点(不勾选复选框)。

 

    1. 在”获取快照时间”中使用UTC指定时间(例如,19:00 UTC为04:00 JST)。

 

    1. 默认保持任意Elasticsearch集群配置。

 

    1. 点击”下一步”按钮。

 

    1. 在”网络配置”中选择公开访问。

 

    1. 由于选定t2.small后无法选择详细访问控制,因此保持默认设置不进行选择。

 

    1. 不勾选启用Amazon Cognito身份验证(在另一篇文章中进行身份验证设置)。

 

    1. 在访问策略中,使用”JSON定义的访问策略”并添加下面的访问策略示例。

 

    1. 加密保持默认设置为将流量发送到域名的HTTPS。

 

    1. 点击”下一步”按钮。

 

    1. 点击”确认”按钮。

 

    等待域名状态变为活动。

访问政策的例子

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:ESHttpGet",
      "Resource": "arn:aws:es:ap-northeast-1:[アカウントID]:domain/[ドメイン名]/*"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "es:ESHttpHead",
        "es:ESHttpPost",
        "es:ESHttpDelete",
        "es:ESHttpPut",
        "es:ESHttpPatch",
        "es:AddTags",
        "es:Create*",
        "es:Delete*",
        "es:Describe*",
        "es:Get*",
        "es:List*",
        "es:Purchase*",
        "es:Remove*",
        "es:Update*"
      ],
      "Resource": "arn:aws:es:ap-northeast-1: [アカウントID]:domain/[ドメイン名]/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": "[アクセス元IPアドレス]/32"
        }
      }
    }
  ]
}

在Kibana中将数据推送到Elasticsearch。

    1. 在AWS管理控制台的Elasticsearch页面上,点击创建域名的名称来打开

 

    1. 在Kibana中,使用在URL中指定的位置打开Kibana(通常的URL形式为 https://search-[域名]-[随机字符串].ap-northeast-1.es.amazonaws.com/_plugin/kibana/ )

 

    1. 在Kibana的欢迎页面上,点击“Explore on my own”

 

    1. 点击左侧的扳手图标?(=Dev Tools)

 

    1. 点击“Get to Work”按钮

 

    1. 在左侧输入GET _search,然后点击播放按钮▶︎或按下CTRL/Command+Retrun以执行并在右侧查看结果是否出现

按照下面的数据插入示例进行描述(索引名为cityindex),点击写有POST的行的播放按钮以尝试插入数据(Elasticsearch在插入数据时会自动创建映射=相当于RDB的表定义)

使用GET cityindex/_search来确认插入的结果
要删除索引,请使用DELETE cityindex

如果要插入多条数据,请参考下面的数据插入示例的多条数据插入的例子
要确认映射(即RDB的表定义),请使用GET cityindex/_mapping

手动进行映射定义,请参考下面的数据插入示例的映射定义的例子

当把索引命名为”cityindex”时,可以进行数据插入的示例为…

POST cityindex/_doc
{
  "cityname": "東京",
  "countryname": "日本",
  "Rank": "19",
  "population": "927"
}
POST /cityindex/_bulk
{"index":{"_index":"cityindex"}}
{"cityname":"上海","countryname":"中国","rank":"1","population":"2415"}
{"index":{"_index":"cityindex"}}
{"cityname":"北京","countryname":"中国","rank":"2","population":"1861"}
{"index":{"_index":"cityindex"}}
{"cityname":"ムンバイ","countryname":"インド","rank":"3","population":"1839"}
{"index":{"_index":"cityindex"}}
{"cityname":"デリー","countryname":"インド","rank":"4","population":"1634"}
{"index":{"_index":"cityindex"}}
{"cityname":"カラチ","countryname":"パキスタン","rank":"5","population":"1491"}
{"index":{"_index":"cityindex"}}
{"cityname":"イスタンブール","countryname":"トルコ","rank":"6","population":"1464"}
{"index":{"_index":"cityindex"}}
{"cityname":"コルカタ","countryname":"インド","rank":"7","population":"1405"}
{"index":{"_index":"cityindex"}}
{"cityname":"ラゴス","countryname":"ナイジェリア","rank":"8","population":"1312"}
{"index":{"_index":"cityindex"}}
{"cityname":"モスクワ","countryname":"ロシア","rank":"9","population":"1222"}
{"index":{"_index":"cityindex"}}
{"cityname":"広州","countryname":"中国","rank":"10","population":"1208"}
PUT cityindex
{
    "mappings" : {
      "properties" : {
        "cityname" : {
          "type" : "text"
        },
        "countryname" : {
          "type" : "text"
        },
        "rank" : {
          "type" : "integer"
        },
        "population" : {
          "type" : "integer"
        }
      }
    }
}

到这里为止。
有关数据操作,请参考《入门 Elasticsearch》等相关资料。

亚马逊Elasticsearch服务是什么?

亚马逊Elasticsearch服务是由AWS提供的全托管Elasticsearch服务。它非常方便地帮助您开始使用Elasticsearch。有关Elasticsearch的特点,请参阅此处的详细说明(通过研究并尝试使用全文搜索引擎“Elasticsearch”来总结)。关于Elasticsearch的各种衍生(包括亚马逊Elasticsearch服务)的详细信息,请参阅此处(尽可能简明地解释亚马逊Elasticsearch服务的身份验证和授权的繁琐规定)。

请参考以下链接。

请参考下面的链接。

请查看一下此链接。

请点击下面的链接。

    • 全文検索エンジン「Elasticsearch」を調べて使ってみた色々まとめ

 

    • Amazon Elasticsearch Serviceを触ってみた

 

    • Amazon Elasticsearch Service の認証・認可に関する面倒くさい仕様をなるべくわかりやすく説明する

 

    • はじめての Elasticsearch

 

    Elasticsearch マッピング
bannerAds