インジェストAPIドキュメント抽出ツールのリファレンス

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

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

インジェストAPIを使用して、属性抽出ロジックを渡してインデックス ドキュメントを作成する場合は、fieldパラメーターとextractorパラメーターを正確に書式設定することが重要です。これらのパラメーターはタイプstringですが、正確な抽出ルールを作成できるように、Sitecore Searchは特定の形式であることを期待しています。

このトピックでは、Swaggerリファレンスを補完して、これらの文字列を適切に書式設定する方法について説明します。

メモ

ドキュメント抽出ツールとは何か、XPathまたはJavaScriptドキュメント抽出ツールの作成方法について理解しておくことをお勧めします。

インジェストAPIを使用するため、これらのトピックに含まれる手順に従う必要はありませんが、説明されている概念とロジックを理解すると役立ちます。

fieldsパラメーター

fieldsを使用して、既存のドキュメント抽出ツールのルールをオーバーライドし、属性に固定値を割り当てます。属性名と属性値を渡す必要があります。

手記

Passing an XPath document extractorPassing a JavaScript document extractorに示すように、extractorパラメーター自体内で属性に固定値を指定できるため、新しい抽出器を渡すときにfields渡す必要はありません。

この形式を使用して、fieldsパラメーターを使用して属性の固定値を定義します。

{
  "items": {
    "<attribute1>": "<value of attribute 1>",
    "<attribute2>": "<value of attribute 2>"
  }
}

たとえば、type属性とname属性に固定値を設定するには、CURL呼び出しで次の行を渡します。

  --form 'fields={
  "items": {
    "type": "pdf",
    "name": "Compliance Services Playbook"
  }
}'

エクストラクタパラメータ

extractorパラメーターを使用して、使用する抽出ロジックを渡します。

属性に対する複数のルールを持つXPathドキュメント抽出器の渡し

XPathドキュメント抽出器を定義するには、抽出器の種類(xpath)と、属性の値を抽出するために使用するルールを指定する必要があります。

この形式を使用して、extractorパラメーターを介してXPath抽出ロジックを渡します。

  --form 'extractor=
{
  "type": "xpath",
  "rules": {
    "<attribute1>": {
      "selectors": [
        {
          "expression": "<First XPath expression to get the value of attribute1>"
        },
        {
          "expression": "<Second XPath expression to get the value of attribute1>"
        },
      ]
    },
    "<attribute2>": {
      "selectors": [
        {
          "expression": "<XPath expression to get the value of <attribute1>>"
        }
      ]
    },
    "attribite3": {
      "value": "<Fixed value for attribute3>"
    }
  }
}
手記

複数のセレクターを渡すと、Searchは渡された順序でそれらを適用します。最初のセレクターで属性値が得られない場合、Searchは2番目のセレクターを試行し、属性値を取得するか、試すセレクターがなくなるまで、以下同様です

例えば、XPathを使用してtitleimage_url、およびtype属性の抽出値を定義するには、cURL呼び出しで以下を渡すことができます。

  --form 'extractor={
  "type": "xpath",
  "rules": {
    "title": {
      "selectors": [
        {"expression": "//meta[@property=\'dozen:page:id\']/@content"},
        {"expression": "//title/text()"}
      ]
    },
    "image_url": {
      "selectors": [
        {"expression": "//meta[@property=\'og:image\']/@content"}
      ]
    },
    "type": {
      "value": "The Core"
    }
  }

この例では、次のロジックを使用して属性値を取得します。

  • title (最初のセレクター): property='dozen:page:id' で識別されるカスタム メタ タグから値を取得します。

  • title (2番目のセレクター):HTML <title> タグから値を取得します。

  • image_url: og:imageメタタグから値を取得します。

  • type: すべてのインデックスドキュメントに固定値のThe Coreを割り当てます。

JavaScriptドキュメント抽出器の受け渡し

JavaScriptドキュメント抽出器を定義するには、抽出器の種類 (js) と、オブジェクトの配列を返すcheerio構文JavaScript関数を指定する必要があります。

この形式を使用して、extractorパラメーターを使用して抽出ロジックJavaScript渡します。

  --form 'extractor={
    "type": "js",
    "source": "function extract(request, response) {
      $ = response.body;
      <attribute1> = $('\'<JavaScript code to get the value of attribite1>;
      <attribute2> = $('\'<JavaScript code to get the value of attribite2>;
      
      // Return structured data
      return [{
        '\''<attribute1>\'': <attribute1>, 
        '\''<attribute2>\'': <attribute2>,
        '\''<attribute3>\'': "fixed value" // optional - set a fixed value for an attribute
      }];
    }"
  }'

たとえば、JavaScriptを使用してPDFファイルからtitledescription、およびtype属性の値を抽出するには、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\" \
    }]; \
  }\"\
}"'

この例では、次のロジックを使用して属性値を取得します。

  • title: HTML <title> タグを対象とするCSSセレクターを使用します。

  • description: スペースと改行を正規化し、余分な句読点を削除し、テキストを最大7,000文字に切り捨てます。

  • type: すべてのインデックスドキュメントに固定値のPDFを割り当てます。

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