- インデックス文書を作成する
インジェスションAPI文書エクストラクタ参照
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
インジェスションAPIを使って属性抽出ロジックを渡してインデックス文書を作成する際は、fieldとパラメータのextractorを正確にフォーマットすることが非常に重要です。これらのパラメータは型stringですが、Sitecore Searchは正確な抽出ルールを作成できるように特定のフォーマットであることを期待しています。
このトピックでは、Swaggerのリファレンスを補完する形でこれらの文字列を正しくフォーマットする方法を説明します。
!注 ドキュメントエクストラクタ とは何か、XPathやJavaScriptのドキュメントエクストラクタの作成方法をよく理解することをお勧めします。
インジェスションAPIを使うため、これらのトピックに含まれる手順に従う必要はありませんが、説明されている概念や論理を理解することは役立ちます。
場パラメータ
既存のドキュメント抽出器のルールを上書きし、属性に固定値を割り当てるためにfieldsを使います。属性名と属性値を渡す必要があります。
!注新しいエクストラクタをパスする際にfieldsパスする必要はありません。なぜなら、extractorパラメータ自体に属性の固定値を指定できるからです。例は*「XPath文書エクストラクタのパッシング*」や*「JavaScriptドキュメントエクストラクタのパッシング*」で示されています。
この形式を使って、fieldsパラメータを通じて属性の固定値を定義します:
{
"items": {
"
例えば、型 と 名前 属性の固定値を設定するには、CURL呼び出しで以下の行を渡すことができます。
--form 'fields={ "items": { "type": "pdf", "name": "Compliance Services Playbook" } }'
エクストラクタパラメータ
extractorパラメータを使って使いたい抽出ロジックを渡します。
属性ごとに複数のルールを持つXPathドキュメントエクストラクタを渡す
XPathドキュメントエクストラクタを定義するには、エクストラクタの種類(xpath)と属性の値を抽出するために使うルールを指定する必要があります。
この形式を使ってXPath抽出ロジックをextractorパラメータで渡します:
--form 'extractor=
{
"type": "xpath",
"rules": {
"
},
"
},
"attribite3": {
"value": "
!注複数のセレクターを通過した場合、Searchは通過した順番にそれらを適用します。最初のセレクタで属性値が得られなければ、Searchは2つ目を試し、これを繰り返して属性値が得られるか、試すセレクタがなくなるまで続けます
例えば、タイトル、image_url、タイプ 属性の抽出値をXPathで定義するには、cURL呼び出しで以下のものを渡すことができます。
--form 'extractor={ "type": "xpath", "rules": { "title": { "selectors": {"expression": "//meta@property=\'dozen:page
\'/@content"}, {"expression": "//title/text()"}}, "image_url": { "selectors": {"expression": "//meta@property=\'og
\'/@content"}}, "type": { "value": "The Core" } }
その例では、属性値を取得するために以下のロジックを用います:
- title (最初のセレクター): property='dozen:page'で識別されるカスタムメタタグから値を取得。
- title (セカンドセレクター)HTML
- image_url: og metaタグから値を取得します。
- type The Core を割り当てます。
JavaScriptドキュメントエクストラクタのパッシング
JavaScriptドキュメントエクストラクタを定義するには、エクストラクタの種類(js)と、オブジェクトの配列を返すcheerio構文JavaScript関数を指定する必要があります。
extractorパラメータを使って抽出ロジックを渡すJavaScriptこの形式を用いてください:
--form 'extractor={
"type": "js",
"source": "function extract(request, response) {
$ = response.body;
// Return structured data
return {
'\''
例えば、JavaScriptを使ってPDFファイルから タイトル、説明、タイプ 属性の値を抽出するには、cURL呼び出しで以下の値を渡すことができます:
--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, \ '\''type\'': \"PDF\" \ }; \ }\"\ }"'
その例では、属性値を取得するために以下のロジックを用います:
- titleHTML
- description、過剰な句読点を削除し、テキストを最大7,000文字に切り詰めます。
- type PDF を割り当てます。