インデックスデータElasticsearchを照会するSQLステートメントを使用します

Elasticsearchクエリ言語が公式のクエリDSLで、結局、真実は合理的であり、存在しています。SQLデータベースクエリ言語の構文はシンプルであるため、書きやすいとサーバ側のプログラマのほとんどは、それと文言の明確な理解に精通しています。しかし、新しいES孟として彼はすでにプログラミング業界の古い旅行者だったが、彼はESサービスに設定された会社を使用したい場合は、彼は最初のクエリDSLを学ばなければならないので、彼は、おなじみのESなかった場合は、学習しても誰が、コストは技術の発展と安定の進行に影響を与える要因は高くないにもあります。しかし、ES SQLクエリのサポートは、多分彼は一年や学生のうちの2つを働いていた場合でも、彼はES複合体の概念を理解していなかったならば、彼はESをうまく利用することに成功し、チームの開発に参加することができ、結局、SQL人それを書きますか?

Elasticsearch-SQLは、ESプラグインを開くことがNLPChina(中国の自然言語処理、オープンソース)で、Elasticsearchの公式を属さない、主な機能は、SQL経由でESを照会することで、実際には、下には、SQLを説明することである、DSLの文法へのSQL変換その後、DSL経由で問い合わせます。

Githubの住所:https://github.com/NLPchina/elasticsearch-sql

プラグインをインストールします。

5.0のインストール(の6.xを含む)の後:elasticsearch-plugin install

バージョン6.2.4を使用してelasticsearchは、あなたがプラグインの同じバージョンを使用する必要があるため、あなたはgithubの上の特定のURLを表示することができます

./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.2.4.0/elasticsearch-sql-6.2.4.0.zip

我々は正常にインストールされていない場合、我々は直接ダウンロードできるプラグインElasticsearch-SQLの圧縮パッケージ、そして抽出し、完了リネームフォルダの後sql、ES用のインストールパス入れpluginsたとえば、ディレクトリを:..\elasticsearch-6.2.4\plugins\sql

あなたがこれを実行したら、それ以外の場合はエラーになり、サーバーElasticsearchを再起動する必要がありますInvalid index name [sql], must not start with '']; ","status":400}

ビジュアルフロントエンドインタフェース

Elasticsearch-SQLのプラグインを使用すると、SQLクエリを実行することができ、視覚的なインターフェースを提供します

インストールNode.jsのと必要とelasticsearchの5.x / 6.xでは、ではダウンロードをしてサイトを解凍した後、Webフロントは次のように終了し起動します。

wget https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.1.0/es-sql-site-standalone.zip
unzip es-sql-site-standalone.zip
cd site-server
# 需要事先安装好nodejs
npm install express --save 
node node-server.js  # 可以通过查看下面的后台运行命令使用

# 端口被占用的话修改端口号
# 后台启动

# 浏览器访问:http://ip:8080进行访问

# 右上角为es的地址和端口,最后的/不能省略

問題:

  1. ポート番号が占有されています

デフォルトのポートを変更する必要があり、その後、あなたが変更することができ、8080でsite-server/site_configuration.jsonファイルを

{
   "port":8880
}
  1. X-パックした場合、それはまた、ユーザー名やパスワードなどの問題に関するものです。以下の構成を参照してください。
    次の行を追加し、ESの設定ファイル/etc/elasticsearch/elasticsearch.ymlを変更します。
http.cors.enabled: true
http.cors.allow-credentials: true
http.cors.allow-origin: "/.*/"
http.cors.allow-headers: WWW-Authenticate,X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization

クラスタ再起動します
:例えば、パラメータとして、パスワード、ESアドレスをサイトelasticsearch-SQLにアクセスするために、ユーザ名を持ってHTTP:// ES-SQL-サイト:8080 /ユーザー名=こんにちは&パスワード= o11eh&base_uri = HTTP :? // ES: 9200

適切ESに対処構成されていません。

Error: "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /_sql</pre>\n</body>\n</html>\n"
  1. elasticsearch.yml正しく設定されていないhttp.cors:
报错提示:Error: Error occured! response is not avalible.

解决办法:
找到config文件夹下的elasticsearch.yml,在文件的末尾添加如下内容:
http.cors.enabled: true
http.cors.allow-origin: "*"
  1. ユーザー名やパスワードエラー:
Error: {"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication token for REST request [/_sql]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication token for REST request [/_sql]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401} 
  1. ウェブページアドレステキストボックスESノードアドレス問い合わせの接続右上

最後のアドレスがあることになった/仕事

  1. バックグラウンドで実行中のプログラムnodejs
# 安装forever
npm install -g forever
# 启动
forever start node-server.js    //node-server.js 是你要启动的js文件
# 查看
forever list    //会列出forever正在运行的服务脚本
# 停止
forever stop index.js   //停止服务运行
# 获取帮助信息
forever --help

使用

查询方式1:
直接在浏览器中输入sql查询语句
http://192.168.0.254:9200/_sql?sql=SELECT * FROM rforder-idx limit 6

查询方式2:
使用web界面,输入sql查询语句
http://192.168.0.254:8880/

查询方式3:
使用谷歌浏览器插件
https://github.com/shi-yuan/elasticsearch-sql-site-chrome

おすすめ

転載: www.cnblogs.com/sanduzxcvbnm/p/11583759.html