1. 機能

機能

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

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

検索エンドポイントは、シリアル化およびエンコードされた使用中のクエリを表すクエリ パラメーターを受け入れます。

skip および take パラメーターを使用して、結果セットをページングできます。

一般的には、次のような API 呼び出しを使用します。

http://hostname/api/search?q=myQuery&skip=3&take=10.

サーバーは、すべてのクエリ引数が追加された、シリアル化およびエンコードされたクエリを含むリソースを返します。これにより、後続のすべての呼び出し (追加のファセット、並べ替え、ページングなど) は、返されたクエリに基づき構築できます。

基本的な形では、検索 API の応答は次の 3 つの部分で構成されます。

  1. 実行されたクエリに関する情報。
  2. 現在の結果に基づき、検索結果を絞り込むために追加できるファセット クエリ。
  3. 限られたプロパティ セットを含む、結果セット内のエンティティ (「設定」を参照)。

ファセット検索

ファセット検索を実行する最も簡単な方法は、まず引数なしで検索エンドポイントを呼び出し、応答から適切なクエリ ID を探すことです。

引数なしでエンドポイントを呼び出すと、ユーザーがアクセスできるすべてのエンティティが返されます (既定の検索設定によって制限される可能性があります)。

GET http://hostname/api/search

応答

{
    "query": "",
    "skip": 0,
    "take": 10,
    "totalItemCount": 63,
    "returnedItemCount": 10,
    "sorting": null,
    "sortingOptions": [ ],
    "filters": [ ],
    "fulltext": [ ],
    "facets": [
        {
            "labels": {
                (Default): "Asset type"
            },
            "name": "taxonomy_items.27.children",
            "childCount": 63,
            "ispartial": false,
            "children": [
                {
                    "labels": {
                        (Default): "Image"
                    },
                    "addQuery": "FAAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA9vtzi83djU5NBuABjisNIUAAAA0",
                    "ispartial": false,
                    "matchCount": 45,
                    "children": [ ]
                },
                ...
            ],
            "definition": "M.AssetType"
        },
        {...},
        ...
    ],
    "items": [
        {
            "id": 381,
            "properties": {
                "Title": "Test-asset-embedded-fonts.doc",
                "FileName": "Test-asset-embedded-fonts.doc",
                "Renditions": {
                    ...
                }
            },
            "relations": { },
            "created_by": {...},
            "created_on": "2014-12-31T08:57:12.4325965Z",
            "modified_by": {...},
            "modified_on": "2014-12-31T09:10:13.3950924Z",
            "entitydefinition": {...},
            "copy": {...},
            "permissions": {...},
            "lifecycle": {...},
            "is_root_taxonomy_item": false,
            "full": {...},
            "self": {...},
            "renditions": {...},
        },
        ...
    ]
}

次に、結果セットを画像タイプのアセットに限定します。 これには、適切な addQuery 値を検索し、要求を再実行します。

GET http://hostname/api/search?query=FAAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA9vtzi83djU5NBuABjisNIUAAAA0

応答

{
    "query": "FAAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA9vtzi83djU5NBuABjisNIUAAAA0",
    "skip": 0,
    "take": 10,
    "totalItemCount": 45,
    "returnedItemCount": 10,
    "sorting": null,
    "sortingOptions": [ ],
    "filters": [
        {
            "name": "taxonomy_items.27.children",
            "label": "Asset type",
            "type": "string",
            "values": [
                {
                    "value": 354,
                    "label": "Image"
                }
            ],
            "operator": "FacetEquals",
            "removeQuery": "",
            "group": "27"
        }
    ],
    "fulltext": [ ],
    "facets": [
        {
            "labels": {
                (Default): "Geography"
            },
            "name": "taxonomy_items.26.children",
            "childCount": 1,
            "ispartial": false,
            "children": [
                {
                    "labels": {
                        (Default): "Europe"
                    },
                    "addQuery": "JwAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA9vtzi83djU5NDuQ0sgQmYQISOgEADOriR0JwAAAA2",
                    "ispartial": false,
                    "matchCount": 1,
                    "children": [ ]
                }
            ],
            "definition": "M.Geography"
        },
        ...
    ],
    "items": [...]
}

ヨーロッパの画像のみが含まれるように、結果セットをさらに絞り込むには、先ほどと同様に適切な addQuery 値を検索し、要求を再実行します。 2 回目の応答では、Europe ファセットの addQuery 値が、1 回目の応答で得られた同ファセットの値とは異なることに注意してください。 エンコードされたクエリは、これまでのすべての制限を使用して、システムによって自動的に修正されます。

GET http://hostname/api/search?query=JwAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA9vtzi83djU5NDuQ0sgQmYQISOgEADOriR0JwAAAA2

応答

{
    "query": "JwAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA9vtzi83djU5NDuQ0sgQmYQISOgEADOriR0JwAAAA2",
    "skip": 0,
    "take": 10,
    "totalItemCount": 1,
    "returnedItemCount": 1,
    "sorting": null,
    "sortingOptions": [ ],
    "filters": [
        {
            "name": "taxonomy_items.26.children",
            "label": "Geography",
            "type": "string",
            "values": [
                {
                    "value": 324,
                    "label": "Europe"
                }
            ],
            "operator": "FacetEquals",
            "removeQuery": "FAAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA9vtzi83djU5NBuABjisNIUAAAA0",
            "group": "26"
        },
        {
            "name": "taxonomy_items.27.children",
            "label": "Asset type",
            "type": "string",
            "values": [
                {
                    "value": 354,
                    "label": "Image"
                }
            ],
            "operator": "FacetEquals",
            "removeQuery": "FAAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA5vtzi83djI5NBuAGEF6Y4UAAAA0",
            "group": "27"
        }
    ],
    "fulltext": [ ],
    "facets": [ ],
    "items": [ ]
}

次の例は、ファセット クエリを作成する方法を示します。 ただし、エンコードされたクエリには、すべてのファセットを合わせたすべての情報が含まれていることを明確にする必要があります。 適切なクエリを作成できたら、以前のすべての呼び出しを実行する必要はありません。

これらの個々の呼び出しは、POST を使用して、JSON 要求をペイロードとして実行することもできます。

{
    "query": "encodedquery"
}

特定のタクソノミー アイテムに対するすべてのクエリの取得

ファセットのエンティティ ID を指定すると、クエリ ID を直接取得することもできます。

GET http://hostname/api/search?facetFieldName=taxonomy_items.27.children

応答

{
    "query": "",
    "facet": "taxonomy_items.27.children",
    "children": {
        "I": [
            {
                "labels": {
                    (Default): "Image"
                },
                "addQuery": "FAAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA9vtzi83djU5NBuABjisNIUAAAA0",
                "ispartial": false,
                "matchCount": 45,
                "children": [

                ]
            }
        ],
        ...
    }
}

この場合も、クエリをチェーン化させることができます。

GET http://hostname/api/search?query=FAAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA9vtzi83djU5NBuABjisNIUAAAA0&facetFieldName=taxonomy_items.26.children

応答

{
    "query": "FAAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA9vtzi83djU5NBuABjisNIUAAAA0",
    "facet": "taxonomy_items.26.children",
    "children": {
        "E": [
            {
                "labels": {
                    (Default): "Europe"
                },
                "addQuery": "JwAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA9vtzi83djU5NDuQ0sgQmYQISOgEADOriR0JwAAAA2",
                "ispartial": false,
                "matchCount": 1,
                "children": [

                ]
            }
        ]
    }
}

特定のファセット値に対するクエリの取得

エンティティ ID を指定すると、対応するクエリ ID をすぐに取得できます。

この例では、分類名 "Europe" のエンティティ ID は 324 です。

GET http://hostname/api/search?id=324

応答

{
    "query": "FAAAAB-LCAAAAAAABAAzOLz90Gqjw9uNzA5vtzi83djI5NBuAGEF6Y4UAAAA0",
    "filters": [ ]
}

このクエリ ID を使用すると、すべての "Europe" アセットが返されます。

クエリ ビルダー

ファセット検索に加えて、name、operator、value を組み合わせてフィルタリングすることもできます。 使用可能なフィルターの種類は、設定によって異なります。

POST http://hostname/api/search

要求のペイロード

{
    filters: [
        {
            "name": "Title",
            "operator": "Contains",
            "values": [
                "text to search for"
            ]
        }
    ]
}

応答

{
    "query": "GwAAAB-LCAAAAAAABAAzOLz90Gqjw9u19EIyS3JSD283P7w9sbg4teTQbgCuZcmBGwAAAA2",
    "skip": 0,
    "take": 20,
    "totalItemCount": 14,
    "returnedItemCount": 14,
    "sorting": null,
    "sortingOptions": [ ],
    "filters": [
        {
            "name": "properties.*.Title",
            "label": "Title",
            "type": "string",
            "values": [
                {
                    "value": "asset",
                    "label": "asset"
                }
            ],
            "operator": "Contains",
            "removeQuery": ""
        }
    ],
    "fulltext": [ ],
    "facets": [ ],
    "items": [...]
}

複数のフィルターを追加できます。 また、フィルター クエリは、クエリ ID を介してファセット クエリと組み合わせることができます。

全文検索

全文検索を実行することもできます。

POST http://hostname/api/search

要求のペイロード:

{
    "fulltext": [
        "text to search for"
    ]
}

応答:

{
    "query": "FwAAAB-LCAAAAAAABAAzPLy9JLWiRKEkX6E4NbEoOUMhLb_o8HQAJ3Er4RcAAAA1",
    "skip": 0,
    "take": 20,
    "totalItemCount": 0,
    "returnedItemCount": 0,
    "sorting": {
        "name": "Title",
        "labels": {

        },
        "asc": true
    },
    "sortingOptions": [ ],
    "filters": [ ],
    "fulltext": [
        {
            "value": "text to search for",
            "removeQuery": ""
        }
    ],
    "facets": [ ],
    "items": [ ]
}
この記事を改善するための提案がある場合は、 お知らせください!