1. インデックス文書を作成する

新しいドキュメントエクストラクタをパスしてインデックス文書を作成する方法

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

インジェスションAPIを使ってインデックスドキュメントを プルプッシュ ソースに追加すると、一時的な ドキュメントエクストラクタ を作成して属性を抽出できます。

ドキュメントエクストラクタは一時的なもので、インジェスションAPIリクエストの一部として渡されますが、Searchはそれを保存しません。つまり、同じエクストラクタを使って複数のインデックスドキュメントを作成したい場合は、呼び出しごとにエクストラクタ全体を渡す必要があります。

ユースケースに応じて、新しいドキュメントエクストラクタを使ってファイルからインデックスドキュメントを作成したり、URLから作成したりできます。

  • ファイルからインデックスドキュメントを作成するには、 {base-URL}/ingestion/v1/domains/{domainID}/sources/{sourceID}/entities/{entityID}/file/{documentID}?locale={locale}POST呼び出しを行います。このエンドポイントは、呼び出し先のマシン上のファイルからインデックスドキュメントを作成したい場合は使います。リクエストでは、インデックスしたいファイルへのパス( 例えば /Users/Jane/Documents/Summer/summer_activites.pdf など)を渡します。
  • URLからインデックス文書を作成するには、 {base-URL}/ingestion/v1/domains/{domainID}/sources/{sourceID}/entities/{entityID}/url/{documentID}?locale={locale}POST呼び出しを行います。リクエスト内で、インデックスしたいURL(例えば https://archive.doc.sitecore.com/xp/en/legacy-docs/web-forms-for-marketers-8.0.pdf)を渡します。Sitecore Search URLにアクセスし、属性値を抽出し、URLを表すインデックスドキュメントを作成します。

!注Ingestion APIを使って、高度なウェブクローラーのようなプルソースにインデックス文書を追加すれば、新しいドキュメントエクストラクタを作成したり既存のものを使うことができます。

Ingestion APIを使ってAPIプッシュソースにインデックスドキュメントを追加する場合は、新しいドキュメントエクストラクタを作成する必要があります。これは、SearchのAPIプッシュソースがプレースホルダーインデックスのみを作成するためです。このソースタイプではドキュメントエクストラクタの設定はできません。

詳細なデータモデルを見るにはswagger参照 を、エクストラクタロジックの渡し方についてはドキュメント エクストラクタ参照 をViewしてください。

ドキュメント抽出器と取り込みAPI

ドキュメントエクストラクタは、URLから属性値を抽出する方法を定義するルールのセットです。オリジナルコンテンツの種類に応じて、XPathJavaScriptJSONPath、またはCSSを使ってルールを作成できます。

Ingestion APIを使って新しいドキュメント抽出器を作成する場合、リクエスト内で 特定の形式の文字列として属性抽出ロジックを渡します。

!ヒント管理者はSitecore Searchインターフェースを使って文書エクストラクターの設定を行い、ローカライズされたコンテンツ用のエクストラクターも含まれます。UIベースのステップの一部には、インジェスションAPIリクエストの本文に追加するコードと似たコードを追加することが含まれます。

ドキュメント抽出器の概念 を理解し、コード サンプルを見るためにドキュメントを読むことをお勧めします。

例1

この例では、JavaScriptドキュメントエクストラクターを使って、/Users/Jane/Documents/Summer/summer_activites.pdfで利用可能なファイルからインデックスドキュメントを作成します。 タイプ 属性と 製品 属性は固定値ですが、それ以外の属性については、JavaScriptを使って属性値を抽出するドキュメントエクストラクタを定義したいです。これを行うには、POST呼び出しを行ってください。 {base-URL}/ingestion/v1/domains/{domainID}/sources/{sourceID}/entities/{entityID}/file/{documentID}?locale={locale}

以下はサンプルのPOST cURLコールです:

curl --location '{base-url}/ingestion/v1/domains/{{domain}}/sources/{{source}}/entities/{{entity}}/file/{{documentId}}?locale={{locale}}' \

--form 'file=@"/Users/Jane/Documents/Summer/summer_activites.pdf"' \

--form 'fields="{\"items\": {\"type\":\"pdf\",\"product\":\"kids\"}}"' \

--form 'extractor="{\"type\": \"js\", \"source\": \"function extract(request, response) { $ = response.body; title = $('\''title'\'').text(); description = $('\''body'\'').text().replace(/(\\\\r\\\\n|\\\\n|\\\\r)/gm, '\'' '\'').replace(/ +/g, '\'' '\'').replace(/\\\\.+/g, '\''.'\'').substring(0, 7000); return { '\''title'\'': title, '\''description'\'': description }; }\"}"'

申請が成功した場合、以下の文200回答が届きます:

{ "enqueued": true }

返信では、enqueuedはSearchがこの文書をインデックスキューに追加したことを意味します。数分後、SearchのContent Collectionセクションで新しい文書が表示されます。

例2

この例では、XPathドキュメントエクストラクタを使い*www.mybank.com/mortagages/fixed* 、URLからインデックスドキュメントを作成します。 タイプname属性は固定値ですが、タイトルimage_urlの属性値を抽出するためにXPath式を使ったドキュメントエクストラクタを定義したいです。これを行うには、POST呼び出し {base-URL}/ingestion/v1/domains/{domainID}/sources/{sourceID}/entities/{entityID}/url/{documentID}を呼び出します。

以下はサンプルのPOST cURLコールです:

curl --location '{{host}}/ingestion-api/v1/domains/{{domain}}/sources/{{source}}/entities/{{entity}}/url/{{documentId}}?locale={{locale}}' \

--form 'url=@"www.mybank.com/mortagages/fixed"' \

--form 'fields="{\"items\": {\"type\":\"Mortages\",\"name\":\"Fixed mortgages \"}}"' \

--form 'extractor={"type":"xpath","rules":{"title":{"selectors":{"expression":"//meta@property=\'dozen:page

\'/@content"}},"image_url":{"selectors":{"expression":"//meta@property=\'og
\'/@content"}}}}'

申請が成功した場合、以下の文200回答が届きます:

{ "enqueued": true }

返信enqueuedは、Searchがこの文書をインデックスキューに追加したことを意味します。数分後、この文書はSearchのContent Collectionセクションに表示されます。

この記事を改善するための提案がある場合は、 お知らせください!