“搜索”微件

“搜索”微件允许您配置搜索工具以根据特定图层和定位器查找要素、记录或位置,并定义如何显示搜索结果。 如果您向微件添加多个搜索源,用户可以选择要搜索的源。 使用图层源执行搜索会影响应用程序中的数据,因此使用相同图层的其他微件会被过滤以显示相应的搜索结果。 如果您希望选择搜索结果,则您可以设置一个操作。 要让微件选择要素而不过滤数据,请为可用作图层源的数据源创建数据视图。 使用定位器源执行搜索会生成其他微件可以使用的输出数据源

要进行搜索,用户在搜索框中键入单词或短语并按 Enter 键,单击搜索按钮,或从基于匹配记录出现的建议列表中进行选择。 (建议列表将每个匹配值显示为一个项目,因此如果一条记录有两个与搜索短语匹配的字段,该记录将显示为两个建议。)用户可以使用箭头和箭头键浏览建议列表。 单击建议会将搜索短语替换为建议项目的内容以应用使用新值的搜索,这会在结果面板中返回相应的数据。 要简化此过程,您可以打开一个设置以自动选择第一个搜索结果。 您还可以将微件配置为在您的应用程序中打开另一个页面,以在另一个微件中显示结果。

示例

使用此微件可支持以下应用程序设计要求:

  • 您希望在您的应用程序中配置一个搜索选项,该选项提供比地图、列表和表微件中所包含的搜索工具更大的灵活性。 特别是,您希望搜索地图中特定图层的有限字段,在搜索框中提供唯一的提示文本,并在结果面板中显示某些数据字段的值。
  • 您希望用户在执行搜索时从多个来源查找信息。
  • 您希望在应用程序的不同页面上的其他微件中显示搜索结果。

用法说明

搜索微件支持两种类型的搜索源 - 图层和定位器。 要使用定位器源,请添加定位器服务。 您可以使用在组织中指定的定位器,或您在选择实用程序面板中添加的定位器。 要搜索图层,请从作为数据添加到应用程序的要素图层和场景图层中进行选择。

如果配置多个搜索源,则在运行时,用户可以使用下拉菜单以打开和关闭各个源,或者使用全部复选框以打开或关闭每个源。

使用定位器源时,可以输入以下类型的搜索词:

  • Place-names
  • 兴趣点
  • 地址
  • UTM 坐标
  • 通过熟知 ID (WKID) 指定的坐标系统中的坐标。

    格式为 x, y: WKID。 例如:-13046165.52, 4036389.847: 102100

如果要将搜索微件和地图微件连接到同一要素图层,并在地图微件设置中打开选择要素时显示弹出窗口,则弹出窗口将在您从搜索结果中选择记录时显示。

搜索方法

“搜索”微件使用不同的方法来检索搜索建议和搜索结果。

该微件将使用全文搜索来检索图层源的搜索建议。 全文搜索是一种有效的搜索方法,该搜索将使用全文字段索引,此索引可将记录分割为较小的单元,例如单个单词。 例如,假设您拥有一个美国邮局位置图层,其中的名称字段包含每个邮局位置的名称。 该索引将名称 Highland Station Baltimore Post Office 分割为 5 个可单独搜索的单词:HighlandStationBaltimorePostOffice。 如果输入由这些单词的任意组合(或仅其中任何单词的第一部分)组成的搜索短语,例如 Baltimore OfficeHighland BaltimoreStat Balt Office,则可在搜索建议中找到该邮局。

如果您是托管要素图层的所有者或者组织管理员,则当选择托管要素图层作为“搜索”、“列表”或“表格”微件的搜索字段时,将自动生成托管要素图层的全文字段索引。 您还可以在图层的项目详细信息页面上手动向属性字段添加索引 如果您的图层没有索引,并且您没有编辑图层的权限,则“搜索”微件将使用 START WITH abc% 查找建议,这意味着该微件将查找以搜索短语开头的记录。 这是一种效率较低的搜索方法。

为了检索搜索结果,该微件将使用 CONTAIN %abc%,这意味着搜索短语可以位于记录中的任何位置。 例如,可以搜索 alt 以在搜索结果中得到 Baltimore、Salt Lake City 和 Alton。

警告:

全文搜索是 Experience Builder 2023 年 10 月版本中的新增功能,是一项重大更改。 在此版本之前,该微件使用了 CONTAIN %abc% 以同时检索建议和结果。 与 CONTAIN %abc% 查询不同,全文搜索无法找到位于单词中间的搜索短语。 在以上示例中,搜索 altimorighlan 将不会在搜索建议中返回预期邮局。 了解有关在地图和应用程序中搜索要素的详细信息

设置

“搜索”微件包含以下设置:

  • 新搜索源 - 添加用于搜索内容的源。 选择图层源定位器源并为每个源指定以下设置:
    • 数据 - 如果适用,请为您希望用户搜索的要素图层选择数据源。 在数据视图设置中,您可以过滤数据以限制搜索范围或对数据进行排序以按特定顺序显示搜索结果。
    • 定位器 URL - 连接定位器实用程序服务。 选择实用程序面板显示在组织设置中指定或由您在实用程序服务面板中添加的定位器。
    • 标注 - 输入搜索源的名称。 此名称将出现在搜索菜单、建议列表和结果面板中。
    • 图标 - 为源选择一个图标。 此图标显示在建议列表和搜索结果面板中。 可从常规箭头库中选择图标,或从文件自行添加图标。 单击移除按钮以移除未使用的已上传图标。
      注:

      可以上传以下图像格式:PNG、GIF、JPG、JPEG 和 BMP。 为了保持最佳性能,每次上传的大小限制为 10 MB。

    • 搜索选项 - 您可以设置以下附加选项:
      • 选择搜索字段(仅图层源)- 选择要在图层中搜索的一个或多个字段。
      • 完全匹配(仅图层源)- 将搜索结果限制为仅与搜索短语匹配的记录。
      • 显示字段 - 选择一个或多个字段以显示在搜索结果面板中。 您可拖动所选字段以对其进行重新排序。
      • 提示 - 自定义当用户选择仅搜索此源时出现在搜索框中的提示文本。
  • 为图层源搜索启用过滤 - 如果启用此设置,则当用户执行搜索时,微件将按搜索条件过滤连接的图层源。
  • 常规搜索选项 - 您可以设置以下常规搜索选项:
    • 多个搜索源的提示 - 自定义当用户选择搜索多个来源时出现在搜索框中的提示文本。
    • 搜索建议 - 定义为每个搜索源显示的最大建议数。 您也可配置以下选项:
      • 使用当前位置 - 包括要基于用户的当前位置进行搜索的建议选项。
      • 最近搜索 - 根据指定的最大最近搜索次数在建议框中显示搜索历史记录。 (用户可以清除搜索历史。)
      提示:

      每个源的最大建议数设置为 0 以禁用搜索源建议。

  • 搜索结果 - 选择显示搜索结果面板或链接到您的应用程序中的页面以在另一个微件中显示结果。
    • 结果面板 - 在搜索框下方出现的面板中显示搜索结果。 您可以定义每个搜索源显示的最大结果数,并选择自动选择第一个结果。
    • 设置链接 - 添加一个链接以在应用程序中打开特定页面、窗口或部分视图,或者滚动到特定内容块或页面顶部以在相应的微件中显示相关的搜索结果。 当关闭结果面板时会出现此设置。
    • 样式 - 选择结果面板的界面样式,经典紧凑紧凑包含一个较小的折叠按钮,显示在面板的底部。
  • 排列样式 - 选择微件的用户界面,可以为方形曲线线性

交互选项

在为“搜索”微件配置消息操作时,可以根据搜索源从以下触发器中进行选择:

触发图层源定位器源

记录选择更改

是

是

记录已创建

是

数据过滤更改

是

使用定位器源配置时,搜索微件会生成可在其他微件中使用的输出数据源。 可通过添加操作与使用同一输出数据源的其他微件进行交互。 例如,地图可自动显示搜索结果并缩放到要素。 在“搜索”微件设置的操作选项卡上,添加已创建记录触发器,选择目标地图,然后为在地图上显示缩放至添加操作。

要在地图上选择与所选搜索结果相对应的要素,请为搜索微件添加记录选择更改触发器(当配置为使用结果面板时)。 选择目标框架,添加选择数据记录操作,将其配置为具有地图要素图层和绑定触发器和操作数据之间的连接的字段。 此外,还可以添加缩放至操作以将地图缩放至要素。

在使用图层源进行配置时,如果希望地图缩放或平移至所选搜索结果,请添加数据过滤更改触发器,选择目标地图,然后添加平移至缩放至操作。

要调整缩放到操作的缩放级别,请将缩放比例切换到自定义并提供所需的比例。

提示:

要使“搜索”微件在不过滤数据的情况下选择地图上的要素,请为可用作图层源的数据源创建数据视图

URL 参数

以下小节将介绍与搜索相关的 URL 参数。 可使用管理 URL 状态下的设置在用户执行搜索时让这些参数在 URL 中显示。 搜索微件参数均前置井号 (#)。

显示搜索输入

searchText 参数将显示用户输入用于执行搜索的文本。 下面是包含 searchText 参数的示例 URL:

https://experience.arcgis.com/experience/<AppId>#<searchWidgetID>=search_status:%7B"searchText"%3A"<text>"%7D

显示搜索源

当用户仅使用一些可用搜索源执行搜索时,URL 中将显示以下两个参数之一:

  • 如果在运行时取消选中微件下拉菜单中的至少一个搜索源,serviceEnabledList 参数将显示并定义选中的搜索源。 当选中所有搜索源时,此参数变为隐藏状态。 下面是已编码 URL 示例:
    https://experience.arcgis.com/experience/<AppId>#<searchWidgetID>=search_status:%7B"serviceEnabledList"%3A%5B"<SourceID1>"%2C"<SourceID2>"%5D%7D
  • 如果用户单击搜索建议以应用搜索,"status":{"configId":"<SourceID>"} 参数将显示并定义正在当前搜索中使用的唯一搜索源。 URL 中将显示搜索输入和搜索源。 下面是已编码 URL 示例:
    https://experience.arcgis.com/experience/<AppId>#<searchWidgetID>=search_status:%7B"searchText"%3A"<text>"%2C"status"%3A%7B"configId"%3A"<SourceID>"%7D%7D

如果用户单击定位器源中的搜索建议,URL 将显示与建议关联的 magicKeymagicKey 为将建议链接到特定地址或地点的唯一 ID。 下面是以 JSON 格式写入的搜索属性和参数的示例:

{
	"searchText": "<text>",
	"status":{
		"configId": "<SourceID>",
		"magicKey": "<key>"
	}
}

下面是以已编码 URL 写入的上述相同属性和参数的示例:

https://experience.arcgis.com/experience/<AppId>#<searchWidgetID>=search_status:%7B"searchText"%3A"<text>"%2C"status"%3A%7B"configId"%3A"<SourceID>"%2C"magicKey"%3A"<key>"%7D%7D