58

弾性検索を使用しています。エラスティック検索の結果を CSV ファイルとして必要としています。これを達成するためのcurl URLまたはプラグインはありますか?

4

8 に答える 8

77

私はcURLとjqを使用してこれを行いました(「のようsedに、しかしJSONの場合」)。たとえば、次のようにして、特定のファセットの上位 20 個の値の CSV 出力を取得できます。

$ curl -X GET 'http://localhost:9200/myindex/item/_search?from=0&size=0' -d '
    {"from": 0,
    "size": 0,
    "facets": {
      "sourceResource.subject.name": {
        "global": true,
        "terms": {
          "order": "count",
          "size": 20,
          "all_terms": true,
          "field": "sourceResource.subject.name.not_analyzed"
        }
      }
    },
    "sort": [
      {
        "_score": "desc"
      }
    ],
    "query": {
      "filtered": {
        "query": {
          "match_all": {}
        }
      }
    }
  }' | jq -r '.facets["subject"].terms[] | [.term, .count] | @csv'

"United States",33755
"Charities--Massachusetts",8304
"Almshouses--Massachusetts--Tewksbury",8304
"Shields",4232
"Coat of arms",4214
"Springfield College",3422
"Men",3136
"Trees",3086
"Session Laws--Massachusetts",2668
"Baseball players",2543
"Animals",2527
"Books",2119
"Women",2004
"Landscape",1940
"Floral",1821
"Architecture, Domestic--Lowell (Mass)--History",1785
"Parks",1745
"Buildings",1730
"Houses",1611
"Snow",1579
于 2014-04-08T18:53:53.467 に答える
9

Elasticsearch head プラグインを使用できます。Elasticsearchヘッド プラグイン http://localhost:9200/_plugin/head/からインストールできます。プラグインを インストールしたら、構造化クエリ タブに移動し、クエリの詳細を指定します。[結果の出力] から [csv] 形式を選択できます。落ちる。

于 2015-04-04T07:53:17.227 に答える
5

検索エンジンから直接 CSV 結果を取得するプラグインはないと思うので、ElasticSearch にクエリを実行して結果を取得し、CSV ファイルに書き込む必要があります。

コマンドライン

Unix ライクな OS を使用している場合は、es2unixを使用すると、コマンド ラインで生のテキスト形式で検索結果が返されるため、スクリプト化できるはずです。

次に、これらの結果をテキスト ファイルにダンプするawkか、CSV 形式にパイプするか、同様の形式にすることができます。利用可能なフラグがあり-oますが、現時点では 'raw' 形式しか提供しません。

ジャワ

Java を使用した例を見つけましたが、テストしていません。

パイソン

次のような方法で ElasticSearch にクエリを実行pyesし、標準のcsvライター ライブラリを使用して結果セットをファイルに書き込むことができます。

パール

Perl を使用すると、Rakesh によってリンクされた Clinton Gormley の GIST を使用できます - https://gist.github.com/clintongormley/2049562

于 2013-09-19T17:59:17.787 に答える
4

恥知らずのプラグ。私は、 elasticsearchドキュメントをタブ区切りの値にエクスポートするためのコマンド ライン プログラムである estab を作成しました。

例:

$ export MYINDEX=localhost:9200/test/default/
$ curl -XPOST $MYINDEX -d '{"name": "Tim", "color": {"fav": "red"}}'
$ curl -XPOST $MYINDEX -d '{"name": "Alice", "color": {"fav": "yellow"}}'
$ curl -XPOST $MYINDEX -d '{"name": "Brian", "color": {"fav": "green"}}'

$ estab -indices "test" -f "name color.fav"
Brian   green
Tim     red
Alice   yellow

estab は、複数のインデックス、カスタム クエリ、欠損値、値のリスト、ネストされたフィールドからのエクスポートを処理でき、かなり高速です。

于 2014-08-22T09:12:26.293 に答える
2

これにはhttps://github.com/robbydyer/stash-query stash-query を使用しています。

やり直すたびにインストールに苦労しますが、非常に便利でうまく機能しています(これは、私がgemとrubyにあまり精通していないためです)。

ただし、Ubuntu 16.04では、機能しているように見えたのは次のとおりです。

apt install ruby
sudo apt-get install libcurl3 libcurl3-gnutls libcurl4-openssl-dev
gem install stash-query

そして、あなたは行く準備ができているはずです

  1. Ruby をインストールします
  2. stash-query ツールは Elasticsearch の REST API を介して動作するため、Ruby の curl 依存関係をインストールします。
  3. stash クエリをインストールします

このブログ投稿では、ビルド方法についても説明しています。

https://robbydyer.wordpress.com/2014/08/25/exporting-from-kibana/

于 2016-10-21T14:20:27.837 に答える
-3

GIST を使用できます。それは簡単です。それは Perl にあり、そこからいくつかの助けを得ることができます。

GitHub でダウンロードして使用方法を確認してください。ここにリンクがあります。 GIST GitHub

または、Java で必要な場合は、elasticsearch-river-csv を使用してください

弾性検索-川-csv

于 2013-09-19T12:09:15.287 に答える