# AnalyzeのBulkAPIの代替方法を知りたい

**URL:** <https://discuss.elastic.co/t/analyze-bulkapi/166683>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [February 1, 2019, 7:30am UTC](https://discuss.elastic.co/t/analyze-bulkapi/166683 "2019-02-01T07:30:50Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![s-hatanaka](https://avatars.discourse-cdn.com/v4/letter/s/c68b51/32.png) [@s-hatanaka](https://discuss.elastic.co/u/s-hatanaka)\
**Post date:** [February 1, 2019, 7:30am UTC](https://discuss.elastic.co/t/analyze-bulkapi/166683/1 "2019-02-01T07:30:50Z")

</div>

AnalyzeAPIの適用結果がまとめて参照できると、想定する検索APIで対象のデータが検索されるかどうかを効率的に判別できると思っています。

AnalyzeのBulkAPIがあればと思っているのですが、存在しないようです。（[Analyze APIの仕様](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-analyze.html)）  
一つずつAnalyzeAPIで適用するのは非効率だと思っており、効率的な方法があれば知りたいです。

---

<div class="post-metadata">

**Author:** ![mnozawa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mnozawa/32/15091_2.png) [@mnozawa](https://discuss.elastic.co/u/mnozawa)\
**Post date:** [February 4, 2019, 6:56am UTC](https://discuss.elastic.co/t/analyze-bulkapi/166683/2 "2019-02-04T06:56:34Z")

</div>

古いバージョンの頃に使っていた方法ですが、script\_fieldで `doc[{field名}].values;` とやるとドキュメントごとにそのfieldのterm一覧が取得できます。  
一度bulk indexしてから出来上がったindexからこんな感じでデータを取り出すのはどうでしょうか。  
(もしかすると書式変わってるかもしれないです)

```
GET YOUR_INDEX/_search
{
  "size": 10,
  "script_fields" : {
      "script_terms" : {
          "script" : "doc[\"YOUR_FIELD\"].values;"
      }
   }
}

```

ただ、これをやると当然indexを置くためのストレージや検索のための資源が必要になります。  
Analyzeする際のメモリやCPUの負荷はどうせかかるものなので、実際のところはAnalyze APIをループで回す方が効率いいんじゃないかとも思います。

---

<div class="post-metadata">

**Author:** ![s-hatanaka](https://avatars.discourse-cdn.com/v4/letter/s/c68b51/32.png) [@s-hatanaka](https://discuss.elastic.co/u/s-hatanaka)\
**Post date:** [February 5, 2019, 2:48am UTC](https://discuss.elastic.co/t/analyze-bulkapi/166683/3 "2019-02-05T02:48:34Z")

</div>

ご回答ありがとうございます。  
こんな方法もあるのですね、AnalyzeAPIのループも鑑みつつ試してみたいと思います。

---

<div class="post-metadata">

**Author:** ![s-hatanaka](https://avatars.discourse-cdn.com/v4/letter/s/c68b51/32.png) [@s-hatanaka](https://discuss.elastic.co/u/s-hatanaka)\
**Post date:** [February 12, 2019, 1:46am UTC](https://discuss.elastic.co/t/analyze-bulkapi/166683/4 "2019-02-12T01:46:05Z")

</div>

ちなみに、下記が使えそうな気がしてきました。  
[https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-termvectors.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-termvectors.html)  
[https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-multi-termvectors.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-multi-termvectors.html)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [March 12, 2019, 1:46am UTC](https://discuss.elastic.co/t/analyze-bulkapi/166683/5 "2019-03-12T01:46:07Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
