前、友人が私にアドバイスやヘッドのプラグ-ESがインストールされていると述べたいくつかの時間が友人を与えるために失敗した彼はボーエンBaiduのとたくさん練習することを疑い、実際にいくつかのピットを踏んで、私は起き上がりました。スキップの下で今日は経験と実践ピットを共有することができます。
ElasticSearchは、分散、拡張性の高い、高リアルタイムデータ分析と簡単に検索、分析および探査で大量のデータを作ることができる検索エンジンは、ESを呼ばれています。この記事では、5つの部分、インストールES、プラグ装着ヘッド、ESの基本的な考え方を説明し、基本的な使用、問題の概要をES。
ディレクトリ
、ESインストール
途中にインストールされている多くのネットワークがありますが、ここでは単純に次のステップは、実際には非常に簡単です
①構成されたJava環境
Java環境を必要とする、最高の環境をスキップする比較的新しいJava、Java環境の構成です
②インストールelasticsearch
ダウンロード:https://www.elastic.co/cn/downloads/elasticsearch、最新バージョンは7.2.0です。任意のディレクトリに解凍し、ダウンロードした後、私のパスは次のとおりです。D:\ elasticsearch-7.2.0
elasticsearch開始③
エス・デフォルト・ポートは9200で、ブラウザでURLを開く:localhostを:9200、以下のスクリーンショットを表示され、その後、正常にインストールされたES
ESインストールは非常に簡単ではないのですか?プラグインのヘッドをインストールするには次の
二、ヘッドマウントプラグ
1.ノードをインストールします。
ES5あなたはノードとうなり声をインストールする必要がある以上、そのプラグイン前提ヘッドのインストールは、2を設定する必要があります。
ノードダウンロード:https://nodejs.org/en/download/、ノードのバージョンが、対応するインストール環境をダウンロードすることができ、インストール手順はスキップ。
インストールプロセスの後、インストールが成功した場合、DOSウィンドウを表示するには、次のコマンドを使用します。ノード-v、インストールが成功した、次のスクリーンショットを表示されます。
2.作男をインストールします。
コマンドを使用して、ノードのインストールパス、インストール時:NPM -g作男-cliをインストールイサキをインストールします。
インストール後、インストールが成功したかどうかを確認するために、コマンドイサキの-versionを使用し、次のスクリーンショットが表示され、インストールは成功しました。
3.プラグヘッドを取り付け
①プラグヘッドをダウンロード
ダウンロードします。https://github.com/mobz/elasticsearch-head、zipパッケージをダウンロードしてください
zipパッケージを解凍②
マイ抽出パス:D:\ elasticsearch-7.2.0 \ elasticsearchヘッドマスター
③インストールpathomjs
ヘッドパスにDOSウィンドウ、インストールコマンドNPMがpathomjsをインストールし使用します
④サービスを有効にします
その後、サービスが正常に起動し、NPM開始対応サービスは、次のスクリーンショットを表示されるコマンドを使用します
4. Webブラウザ。
アドレスを使用して:localhostを:9100訪問表示され、次のスクリーンショットは、その後、頭部のインストールが成功すると、デフォルトのポートは9100です
ESとヘッドプラグインが正常にインストールされている、その後、ESの下で基本的な概念と基本的な使い方を紹介します。
ESの第三に、基本的な考え方
①クラスターノード
ESクラスター一つ以上のESとノードの集合であり、各クラスタは名前を有し、各ノードは、独自の名前を持つ、ノードは、データを格納することができる、独立したサービスインデックスデータに参加します。
(データベース内のデータベースと同様)②インデックス
インデックスは、小文字でなければなりません、ESインデックスは名前で識別されているのと同じ性質を含む文書の集合であり、かつスクライブラインは無料です。
③タイプ(テーブル内のSQLに対応)
インデックスはタイプである必要があり、文書の1つまたは複数のタイプを定義することができます
(SQLの行に相当)④文書
ドキュメントには、データの基本単位は、インデックスを作成することができています
⑤フラグメント
每个索引都有多个分片,每个分片都是一个luncene索引,分片的好处:分摊索引的搜索压力,分片还支持水平的拓展和拆分以及分布式的操作,可以提高搜索和其他处理的效率。
⑥备份
拷贝一个分片就完成了分片的备份,备份的好处:当主分片失败或者挂掉,备份就可以代替分片进行操作,进而提高了es的可用性,备份的分片还可以进行搜索操作,以分摊搜索的压力。es在创建索引时,默认创建5个分片,一份备份,可以修改,分片的数量只能在创建索引的时候指定,索引创建后就不能修改分片的数量了,而备份是可以动态修改的。
⑦数据类型
四、es基本使用
1.es基本格式
2.创建索引
在head插件中创建,操作如下:
点击索引>新建索引
弹出该提示,则说明创建成功
3.查看索引信息
点击概览查看创建情况
创建索引分为: 结构化创建与非结构化创建
查看索引是否是结构化的方法:点击刚创建的索引信息,可查看到如下所示信息:
Mappings是结构化的一个关键词,其后内容是空的,说明这个索引是一个非结构化的索引。
4.创建结构化索引
点击head插件的“复合查询”,输入内容如下:
勾选易读,点击验证json,可以检测json格式是否正确
请求方式选择post,点击提交请求,返回如下截图数据,则表示创建成功
创建成功后,可以返回到概览中查看索引信息,如下:
也可以直接在复合查询中,改成get请求方式,提交请求,查看数据:
5.数据插入
文档id, 唯一索引值, 指向文档数据
①指定文档id插入
使用http中的put方法,插入时输入的ip地址,http://localhost:9200/test/_doc/1
请求参数依次为:索引名称/类型名称/文档id
请求参数
{
"duty": "技术",
"age": 22,
"name": "一壶清酒",
"date": "2019-07-21 11:00:00"
}
如下图所示:
在数据浏览中可查看到该条数据,如下所示:
②自动产生文档id插入
使用http中的post方法,插入时输入的ip地址:http://localhost:9200/test/_doc
请求参数
{
"duty": "测试",
"age": 25,
"name": "温一壶清酒",
"date": "2019-07-21 11:05:00"
}
依然到数据浏览中查看数据,如下所示,id为自动生成:
③postman插入数据
操作方式一样,只是改成了postman而已,入参如下所示:
到数据浏览处查看数据,如下:
postman的操作,就只引用了这一个例子,其他操作都一样,所以就不再赘述。
6.修改文档数据
①直接修改文档
http方法: post方法
请求地址:
http://localhost:9200/test/_doc/1/_update
请求参数
{
"doc": {
"duty": "技术",
"age": 22,
"name": "我是一壶清酒",
"date": "2019-07-21 11:06:00"
}
}
关键词: _update,doc
“doc”为关键字,要修改的文档放在doc中, 实例修改了type为test索引下_doc中id为1 的name和date属性
到数据浏览处查看修改后的数据,如下:
②脚本修改文档
通过脚本修改的api格式与直接修改的是一致的
http方法: post方法
请求地址:
http://localhost:9200/test/_doc/1/_update
请求参数
{
"script": {
"lang": "painless",
"inline": "ctx._source.age += 30"
}
}
关键字”script”: 标志以脚本的方式修改文档
“lang”:表示以何种脚本语言进行修改,“painless”表示以es内置的脚本语言进行修改。此外es还支持多种脚本语言,如Python,js等等
“inline”:指定脚本内容 “ctx”代表es上下文,_source 代表文档
查看数据,age增加了5,如下所示:
7.删除文档
http方法: delete
请求地址:
http://localhost:9200/test/_doc/1
操作如下:
到数据浏览处查看数据,已没用id为1的文档了,如下所示:
8.删除索引
①索引概览中删除
点击已有索引的动作,会有个删除操作,如下:
输入删除,点击确定,该索引就被删除了,会返回一个true的提示框
再次查看,就只有一个索引了
②通过api删除
http方法: delete
请求地址:
http://localhost:9200/demo
五、问题总结
1.grunt不是内部或外部命令
使用命令npm start启用服务时,报grunt不是内部或外部命令,如下所示:
解决办法:
将node安装路径,加到环境变量path路径下,重启dos窗口即可。
2.head服务启用失败
使用npm start命令启用服务,报错如下:
解决办法:
3.提示未连接
head服务启用成功,通过localhost:9100访问,提示集群健康值:未连接
解决办法:
需要在elasticsearch.yml文件中增加以下配置:
http.cors.enabled: true
http.cors.allow-origin: "*"
说明:
http.cors.enabled:true 如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求。
http.cors.allowed.origin:"*" 如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。
重启服务,再次访问,则恢复正常
小结
全文通读到此,发现ElasticSearch的安装、head插件的安装其实很简单,并不是那么难。es的使用,就需要学习些基本的概念,知识的海洋是渊博的,此次介绍的es的使用,也只是简单的增删改查,属于很浅薄的知识。自己在摸索的时候,也是一点一点学习,百度以前前辈们的博文学习、摸索。只要努力,遇到问题,积极去解决,我相信一定会成功。文中观点,有误之处,欢迎批评指正
本文仅代表作者观点,系作者@温一壶清酒发表。
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
文章出处:http://www.cnblogs.com/hong-fithing/