如果是Internet模式的,登录比较简单,创建完成直接访问Dashboard URL就可以。如果是VPC模式,需要使用代理。
在同VPC的EC2上(这里是cloud 9)安装nginx:
sudo yum install nginx -y
然后编辑/etc/nginx/nginx.conf
加入以下配置:
server {
listen 8080;
server_name _; # EC2 instance's public DNS or IP
location / {
proxy_pass https://vpc-opensearch-test-gbqcd2ty3522hq35e2kvkdgfje.us-west-2.es.amazonaws.com; # OpenSearch VPC endpoint
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启动ngnix:
sudo service nginx start
访问EC2 public URL + _dashboards
:
注意后面一定要加上_dashboards
, 不然加载不了Dashboard页面
登录成功后的页面:
单击右上角的 开发工具 :
开发工具界面直接向 OpenSearch 发出 API 查询, 使用 查询 DSL 。
从开发工具界面, 将执行以下 API 操作:
my-movie-index
首先, 创建将导入数据的索引。复制下面的文本, 并将其粘贴到开发工具输入窗口中, 然后运行
PUT /my-movie-index
{
"settings": {
"index": {
"number_of_shards": 3,
"number_of_replicas": 1
}
}
}
这将创建一个名为 my-movie-index
的索引, 其中有 3 个shard和 1 个replica。
一个 index 由一个或多个 shard 组成。在查询索引时, OpenSearch 实际上会在组成该索引的所有分片上执行搜索。
replica 是shard
的副本。每个shard可能包含 0 个或多个replica。
和之前一样, 复制下面的文本, 并将其粘贴到开发工具输入窗口中P:
GET /my-movie-index
现在要通过 OpenSearch 的 bulk API 将数据插入到其中, 将使用一个包含 1,499 部电影的数据集。
下载并打开以下文件:
wget https://pingfan.s3.amazonaws.com/files/imdb-data-for-indexing.txt
文件的第一行是将发送到 OpenSearch 的 API 操作。在本例中, 是一个 POST
请求到 _bulk
API :
POST /_bulk
_bulk API 是将大量数据引入 OpenSearch 的最有效方式。
文件的其余部分由 NDJSON
(换行分隔的 JSON)组成。OpenSearch 将读取第一行, 以确定要将数据写入哪个索引(在本例中是 my-movie-index
索引), 而下一行将被视为有效负载。这将重复执行,直到请求中发送的所有行都处理完毕。
将整个数据文件(1499 条记录)复制并粘贴到开发控制台中, 选择全部并单击 ‘Run’ 图标:
恭喜! 现在有一个充满电影数据的索引, 可以进行搜索!