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

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

  1. Elasticsearch SQLを使う

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

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


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

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

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

POST _sql?format=tsv
{
  "query": """
  select 
  field1 as "フィールド1",
  field2 as "フィールド2"
  FROM forum0920
  """
}
  1. LogstashのInputにElasticsearchを指定する

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

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

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


(参考)

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