区段搜索端点
区段搜索用于搜索各种数据源中包含的字段并近乎实时地返回它们。
本指南提供的信息可帮助您更好地了解区段搜索,包括用于使用API执行基本操作的示例API调用。
快速入门
本指南中使用的端点是Adobe Experience Platform Segmentation Service API的一部分。 在继续之前,请查看快速入门指南以了解成功调用API所需了解的重要信息,包括所需的标头以及如何读取示例API调用。
除了快速入门部分中概述的必需标头外,对区段搜索端点的所有请求都需要以下附加标头:
- x-ups-search-version: "1.0"
跨多个命名空间搜索
此搜索端点可用于跨各种命名空间进行搜索,并返回搜索计数结果的列表。 可以使用多个参数,以&分隔。
API格式
GET /search/namespaces?schema.name={SCHEMA}
GET /search/namespaces?schema.name={SCHEMA}&s={SEARCH_TERM}
schema.name={SCHEMA}
_xdm.context.segmentdefinition
。s={SEARCH_TERM}
schema.name
关联的所有记录。 有关更详细的解释,请参阅本文档的附录。请求
curl -X GET \
https://platform.adobe.io/data/core/ups/search/namespaces?schema.name=_xdm.context.segmentdefinition \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'x-ups-search-version: 1.0'
响应
成功的响应会返回包含以下信息的HTTP状态200。
{
"namespaces": [
{
"namespace": "AAMTraits",
"displayName": "AAMTraits",
"count": 45
},
{
"namespace": "AAMSegments",
"displayName": "AAMSegment",
"count": 10
},
{
"namespace": "SegmentsAISegments",
"displayName": "SegmentSAISegment",
"count": 3
}
],
"totalCount": 3,
"status": {
"message": "Success"
}
}
搜索单个实体
此搜索端点可用于检索指定命名空间内所有全文检索对象的列表。 可以使用多个参数,以&分隔。
API格式
GET /search/entities?schema.name={SCHEMA}&namespace={NAMESPACE}
GET /search/entities?schema.name={SCHEMA}&namespace={NAMESPACE}&s={SEARCH_TERM}
GET /search/entities?schema.name={SCHEMA}&namespace={NAMESPACE}&entityId={ENTITY_ID}
schema.name={SCHEMA}
_xdm.context.segmentdefinition
。namespace={NAMESPACE}
s={SEARCH_TERM}
schema.name
关联的所有记录。 有关更详细的解释,请参阅本文档的附录。entityId={ENTITY_ID}
limit={LIMIT}
page={PAGE}
请求
curl -X GET \
https://platform.adobe.io/data/core/ups/search/entities?schema.name=_xdm.context.segmentdefinition&namespace=AAMSegments \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'x-ups-search-version: 1.0'
响应
成功的响应返回HTTP状态200,返回的结果与搜索查询匹配。
{
"entities": [
{
"id": "1012667",
"base64EncodedSourceId": "RFVGamdydHpEdy01ZTE1ZGJlZGE4YjAxMzE4YWExZWY1MzM1",
"sourceId": "DUFjgrtzDw-5e15dbeda8b01318aa1ef533",
"isFolder": true,
"parentFolderId": "974139",
"name": "aam-47995 verification (100)"
},
{
"id": "14653311",
"base64EncodedSourceId": "REVGamduLVgzdy01ZTE2ZjRhNjc1ZDZhMDE4YThhZDM3NmY1",
"sourceId": "DEFjgn-X3w-5e16f4a675d6a018a8ad376f",
"isFolder": false,
"parentFolderId": "324050",
"name": "AAM - Heavy equipment",
"description": "AAM - Acme Equipment"
}
],
"page": {
"totalCount": 2,
"totalPages": 1,
"pageOffset": 0,
"pageSize": 10
},
"status": {
"message": "Success"
}
}
获取有关搜索对象的结构信息
此搜索端点可用于获取有关所请求的搜索对象的结构信息。
API格式
GET /search/taxonomy?schema.name={SCHEMA}&namespace={NAMESPACE}&entityId={ENTITY_ID}
schema.name={SCHEMA}
_xdm.context.segmentdefinition
。namespace={NAMESPACE}
entityId={ENTITY_ID}
请求
curl -X GET \
https://platform.adobe.io/data/core/ups/search/taxonomy?schema.name=_xdm.context.segmentdefinition&namespace=AAMSegments&entityId=porsche11037 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'x-ups-search-version: 1.0'
响应
成功的响应返回HTTP状态200,其中包含有关所请求的搜索对象的详细结构信息。
{
"taxonomy": [
{
"id": "0",
"base64EncodedSourceId": "RFVGZ01BLTVlNjgzMGZjMzk3YjQ1MThhYWExYTA4Zg2",
"name": "AAMTraits for Cars",
"parentFolderId": "root"
},
{
"id": "150561",
"base64EncodedSourceId": "RFVGamdpRk1BZy01ZTY4MzBmYzM5N2I0NTE4YWFhMWEwOGY1",
"name": "Fast Cars",
"parentFolderId": "carTraits"
},
{
"id": "porsche11037",
"base64EncodedSourceId": "REFGZ01CLTVlNjczMGZjMzk3YjQ1MThhZGIxYTA4Zg==",
"name": "Porsche",
"parentFolderId": "redCarsFolderId"
}
],
"status": {
"message": "Success"
}
}
后续步骤
阅读本指南后,您现在可以更好地了解区段搜索的工作方式。
附录 appendix
以下部分提供有关搜索词工作方式的其他信息。 搜索查询的编写方式如下: s={FieldName}:{SearchExpression}
。 例如,要搜索名为AAM或Platform的区段定义,您可以使用以下搜索查询: s=segmentName:AAM%20OR%20Platform
。
为获得最佳实践,搜索表达式应进行HTML编码,如上面的示例所示。
搜索字段 search-fields
下表列出了可在搜索查询参数中搜索的字段。
搜索表达式 search-expression
下表列出了使用区段搜索API时搜索查询的工作方式的详细信息。
为了更加清晰明了,以下示例以非HTML编码格式显示。 为获得最佳实践,HTML对搜索表达式进行编码。
"hotel airport"~5
将在文档中找到5个词语中的术语“hotel”和“airport”。/a[0-9]+b$/
/[mh]otel/
。 正则表达式搜索仅针对单个单词进行匹配。有关查询语法的更多详细文档,请参阅Lucene查询语法文档。