1. Search

機能

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

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

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

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

一般的なAPI呼び出しは次のとおりです。

http://<HOSTNAME>/api/search?q=myQuery&skip=3&take=10

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

その基本的な形では、Search 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": {...},
        },
        ...
    ]
}

次に、結果セットをimageタイプのアセットに制限します。これを行うには、適切な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値は、最初の応答の同じファセットの値と異なることに注意してください。エンコードされたクエリは、以前のすべての制限で自動的に修正されます。

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": [ ]
}

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

これらの各呼び出しは、JSON要求ペイロードを持つPOSTによって実行することもできます

{
    "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" アセットが返されます。

クエリビルダー

ファセット検索に加えて、名前/演算子/値のペアを使用してフィルタリングすることもできます。使用可能なフィルターは、構成によって異なります。

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を使用してファセット クエリと組み合わせることもできます。

利用可能な演算子

さまざまな フィルター演算子 を使用して、検索APIクエリを作成できます。可能なフィルター・タイプの値は次のとおりです。

  • FieldFilter

  • InFilter

  • DynamicFilter

  • Nested

  • IdFilter

全文検索

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

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": [ ]
}
この記事を改善するための提案がある場合は、 お知らせください!