# SearchAPIにおけるレスポンスデータの操作について

**URL:** <https://discuss.elastic.co/t/searchapi/200363>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [September 20, 2019, 7:24am UTC](https://discuss.elastic.co/t/searchapi/200363 "2019-09-20T07:24:50Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![tsgkdt](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsgkdt/32/39151_2.png) [@tsgkdt](https://discuss.elastic.co/u/tsgkdt)\
**Post date:** [September 21, 2019, 1:11pm UTC](https://discuss.elastic.co/t/searchapi/200363/2 "2019-09-21T13:11:04Z")

</div>

もちろん、レスポンスで返ってきたJSONを何とかするというのがシンプルかと思いますが、  
連携先のシステムが何で、どういう連携をしたいのかによって、選べる手段も変わってくるかと思います。  
今回は、それが明らかでないので、３つほど他のアプローチを紹介してみます。

1. Elasticsearch SQLを使う

> **[Elasticsearch SQL | ElasticsearchインデックスをSQLでクエリする](https://www.elastic.co/jp/elasticsearch/sql)**
>
> 速さと関連性スコアリング、水平スケーラビリティを備えたElasticsearchの全文検索を、使い慣れたSQLで実行できます。

詳細は上のページに書いてありますが、フォーマットをCSVやTSVに指定することができます。  
json以外のデータ取得方法が欲しいという場合は、この方法も検討できるかと思います。

例えば、このような感じです。

```auto

POST forum0920/_doc/1
{
  "field1": "hoge",
  "field2": "bar",
  "field3": "fuga"
}

POST _sql?format=tsv
{
  "query": """
  SELECT * FROM forum0920
  """
}

```

SELECTで取得する列名を具体的に書いてやれば、不要なフィールドも削ることができます。

```auto
POST _sql?format=tsv
{
  "query": """
  select 
  field1 as "フィールド1",
  field2 as "フィールド2"
  FROM forum0920
  """
}

```

1. LogstashのInputにElasticsearchを指定する

特定のインデックスに検索クエリを投げて、結果に対して何か（AWS S3に置く、ファイルに出力するなどなど）する場合には検討できるかもしれません。

> **[Elasticsearch input plugin | Logstash Reference \[8.11\] | Elastic](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-elasticsearch.html)**

1. 外部のツールと連携させる

CDataと何か他のETLツールを組み合わせるアプローチもあるかもしれません。

> **[Elasticsearch とのデータ連携に | Elasticsearch Drivers | CData Software Japan](https://www.cdata.com/jp/drivers/elasticsearch/)**
>
> Elasticsearch に帳票ツール、データベース、カスタムアプリケーションから連携！Elasticsearch データにあらゆるUI から簡単にアクセス。

* * *

（参考）

> [@ETL tool for ElasticSearch](https://discuss.elastic.co/t/etl-tool-for-elasticsearch/113803):
>
> Hi Guys, do you know any ETL tool where is possible to have a connector to ElasticSearch and get all data that i need? I was trying talend studio (big data) and oracle data integrator, but without results. if with this tools i cannot find a way to extract the data, Do you think that is better extract data and write it to a file and after use the ETL tool to load data from file? thank you

ご参考になれば幸いです。

---

_[View the full topic](https://discuss.elastic.co/t/searchapi/200363)._
