完全なURLである属性値に関する推奨事項

ソース・データには、そのデータがロードされたときにEndeca Serverに取り込まれる完全な(プロトコル、ホスト、ポートおよびパスを含む)URLが含まれる場合があります。たとえば、企業のデータには、その企業のWebサイトのページへのリンクが含まれる場合があります。

完全な値を格納し、その値をハイパーリンクURLとして挿入した場合、その値はエンコードできません。Studioは、属性値を絶対URLの一部として解析しないため、その値をエンコードするとURLが壊れ、リンクが動作しなくなる可能性があります。

たとえば、http://www.mycompany.com/page1http%3A%2F%2Fwww.mycompany.com%2Fpage1になる場合があります。

このため、完全なURLをEndeca Serverデータに格納することはお薦めしません。

このようなタイプの属性の場合、データ取込みプロセスで、次のいずれかの方法を使用することをお薦めします。
  1. 1つ以上の属性を使用して、各レコードのURLに対するパラメータ値のみを格納します。

    コンポーネント内のURLを構成する場合、手動でURLの標準部分をコンポーネントの構成に入力し、エンコードされた属性を問合せ文字列パラメータに使用することが考えられます。次に例を示します。

    http://server.mycompany.com/path/to?file={0}

    0は選択されたパラメータのリスト内の番号です。

    この方法は、すべてのURLの構造が一致する場合のみ使用できます。これに該当しない場合は、他の方法を使用する必要があります。

  2. URLの構造部分をパラメータ値とは異なる属性に格納します。

    この方法では、プロトコル、ホスト名、ポート、コンテキスト・パス、デリミタなど、URLの構造部分を1つ以上の属性に格納します。識別子を表すURLのパラメータ部分は、前述の方法1のように、他の属性に格納されます。

    コンポーネントにURLを入力する場合、構造属性をエンコードせず、パラメータをエンコードすることが考えられます。次に例を示します。

    {{0}}/path/to/{1}?file={2}

    0、1および2は選択されたパラメータのリスト内の番号です。

  3. 完全なURLに単一の属性を使用しますが、データ取込みプロセスで、問合せ文字列パラメータなど、URLの構造以外の部分をすべてエンコードします。

    これにより、スクリプトの挿入を回避し、許可されていない文字に対処できます。また、URLの入力時に、使用する属性値を追加でエンコードする必要がなくなります。次に例を示します。

    {{0}}

    0は選択されたパラメータのリスト内の番号です。