# カスタムソースコンテンツおよびドキュメントの取得方法

**URL:** <https://discuss.elastic.co/t/topic/276257>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [June 17, 2021, 11:06am UTC](https://discuss.elastic.co/t/topic/276257 "2021-06-17T11:06:40Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![its-ogawa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/its-ogawa/32/120829_2.png) [@its-ogawa](https://discuss.elastic.co/u/its-ogawa)\
**Post date:** [June 17, 2021, 11:06am UTC](https://discuss.elastic.co/t/topic/276257/1 "2021-06-17T11:06:40Z")

</div>

私はEnterpriseSearchをオンプレミス環境にインストールし、WorkplaceSearchを利用しています。

一度登録したドキュメントのIDを知るにはどのようにしたらよいでしょうか？  
登録したドキュメントを編集するにはドキュメントIDが必要なようですが、管理者ページから知る術がありません。

実際に、私は下記のURLの例に従って、ドキュメントを登録しました。

> **[Connecting custom sources | Workplace Search Guide \[7.12\] | Elastic](https://www.elastic.co/guide/en/workplace-search/7.12/workplace-search-custom-api-sources.html#_indexing_a_document)**

管理者ページからはソースコンテンツとして登録したドキュメントが確認できますが、IDは確認できません。

下記のURLのようにして、ドキュメントのIDを取得できると考えているのですが、正しい取得方法が分かりません。

> **[External Identities API Reference | Workplace Search Guide \[7.12\] | Elastic](https://www.elastic.co/guide/en/workplace-search/7.12/workplace-search-external-identities-api.html)**

```auto
# curl -X GET http://localhost:3002/api/ws/v1/sources/[CONTENT_SOURCE_ID]/external_identities \
> -H "Authorization: Bearer [ACCESS_TOKEN]"
{"errors":["This feature is only available for Workplace Search deployments running against an Elasticsearch cluster with a valid Trial or Platinum license applied. For more information, visit the Enterprise Search licensing reference at https://www.elastic.co/pricing/."]}

```

カスタムソースコンテンツにおけるコンテンツの取得、ドキュメントの取得方法を教えてください。

---

<div class="post-metadata">

**Author:** ![its-ogawa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/its-ogawa/32/120829_2.png) [@its-ogawa](https://discuss.elastic.co/u/its-ogawa)\
**Post date:** [June 21, 2021, 5:35am UTC](https://discuss.elastic.co/t/topic/276257/2 "2021-06-21T05:35:16Z")

</div>

コンテンツソースの一覧（コンテンツソースのID）を取得する方法が分かりましたので共有します。

まず、EnterpriseSearch7.13より古いバージョンを使っている場合は7.13にアップグレードしてください。  
コンテンツソースの取得方法は7.13で追加された機能のようです。

> **[Content sources API reference | Workplace Search Guide \[7.13\] | Elastic](https://www.elastic.co/guide/en/workplace-search/current/workplace-search-content-sources-api.html#list-content-sources-api)**

上記URLによると、コンテンツソース一覧は下記のコマンドで取得できます。（`$PASSWORD` はEnterpriseSearchのパスワードです）

```auto
# curl -u enterprise_search:$PASSWORD -X GET http://localhost:3002/api/ws/v1/sources

{"meta":{"page":{"current":1, "total_pages":1, "total_results":18, "size":25}}, "results":[{... snip ... , "name": "test", "context": "organization", "is_searchable":true, "schema":{"created_at": "text", "title": "text", "body": "text", "type":" text", "url": "text"}, "display":{"title_field": "title", "subtitle_field": "url", "description_field": "body", "url_field": "url", "detail_ fields":[{"field_name": "url", "label": "URL"}], "color": "#000000"}, "document_count":1, "last_indexed_at": "2021-06-10T09:58:14+00:00 "},... .snip...

```

なお、同URLで、コンテンツソースを取得する方法が掲載されていますが、これはドキュメントのIDは取得できません。  
（`$CONTENT_SOURCE_ID`と`$ACCESS_TOKEN`は`Content Sources > Overview` の `CREDENTIALS`を使用します。）

```auto
# curl \
--request 'GET' \
--url "https://f3fae9ab3e4f423d9d345979331ef3a1.ent-search.us-east-1.aws.cloud.es.io/api/ws/v1/sources/$CONTENT_SOURCE_ID" \
--header "Authorization: Bearer $ACCESS_TOKEN"

{"id":$CONTENT_SOURCE_ID,"service_type":"custom","created_at":"2021-06-10T09:56:26+00:00","last_updated_at":"2021-06-10T09:59:42+00:00","is_remote":false,"details":[],"groups":[{"id":"60acc08084c21247b452c8d9","name":"Default"}],"name":"test","context":"organization","is_searchable":true,"schema":{"created_at":"text","title":"text","body":"text","type":"text","url":"text"},"display":{"title_field":"title","subtitle_field":"url","description_field":"body","url_field":"url","detail_fields":[{"field_name":"url","label":"URL"}],"color":"#000000"},"document_count":1,"last_indexed_at":"2021-06-10T09:58:14+00:00"}

```

ドキュメントのIDを取得する方法を教えてください。

---

<div class="post-metadata">

**Author:** ![its-ogawa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/its-ogawa/32/120829_2.png) [@its-ogawa](https://discuss.elastic.co/u/its-ogawa)\
**Post date:** [June 28, 2021, 2:41am UTC](https://discuss.elastic.co/t/topic/276257/3 "2021-06-28T02:41:39Z")

</div>

ドキュメントIDを取得する方法は以下のようです。

```auto
$ curl -X POST http://localhost:3002/api/ws/v1/search \
-u "[USERNAME]:[REDACTED]" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
  "query": "denali"
}'

```

ただし、 **このコマンドを実行するためにはプラチナ以上のライセンスが必要です。**  
私はベーシックライセンスしか保有していないので、このコマンドからドキュメントIDが得られることを確認できていません。  
（何も値を返しません）

もしベーシックライセンスでカスタムコンテンツソースを使用する場合は、登録時のドキュメントIDを何らかの方法で控えておく必要があります。

---

<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:** [July 26, 2021, 2:42am UTC](https://discuss.elastic.co/t/topic/276257/4 "2021-07-26T02:42:27Z")

</div>

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