[AX]AX2012 Enterprise search

AX2012的企业搜索组件提供针对AX内容的搜索,它依赖Sharepoint搜索服务工作,安装配置稍显繁琐,完整的Checklist可以参看http://technet.microsoft.com/EN-US/library/gg731811.aspx,这里就一些关键的步骤做简单说明。

  • 安装配置企业搜索的前提条件:其实应该说准备AX企业搜索的安装环境比安装AX企业搜索本身更耗时间,因为在安装企业搜索前必须安装好Sharepoint(部署EP)服务和Sharepoint Search server并做好相关的配置。在我的环境中选用的是Sharepoint foundation 2010和Microsoft Search server express 2010,它们都都可以免费从微软下载。我们知道Sharepoint foundation中自带Sharepoint foundation search服务,可以在“Sharepoint管理网站>Central administration>Manage services on servers”找到并启用它,但是它是不能用来搜索AX内部记录内容的,因此我们还需要安装Search server express。

安装完Search server express回到“Sharepoint管理网站>Central administration>Manage services on servers”,我们能看到新增加的“Search Query and Site Settings Service”和“SharePoint Server Search”两个服务,“Search Query and Site Settings Service”可以直接在“Manage services on servers”使用Start启动,而“SharePoint Server Search”则稍微麻烦一些,需要通过“Sharepoint管理网站>Central administration>Manage service applications”创建一个搜索应用服务,需要配置相应的搜索服务账号以及应用池账号(Web服务)。“Search Query and Site Settings Service”也有自己的Web服务,和搜索应用服务一并创建在Sharepoint web services同一个IIS站点上,对应的物理路径分别为“C:\Program Files\Microsoft Office Servers\14.0\WebServices\SearchAdmin”和“C:\Program Files\Microsoft Office Servers\14.0\WebServices\SearchService”,它们有各自的应用池,如果你的搜索服务不能正确运行,请确认这两个Web服务是否正确安装。

AX企业搜索除了需要一个搜索应用服务外还需要一个BDC应用服务,也是在“Sharepoint管理网站>Central administration>Manage service applications”下创建,AX企业搜索通过它暴露AX内部的数据给搜索服务。

这两个应用服务我们只需要创建配置好,后续企业搜索的安装程序会来做更多的配置。

  • 配置搜索账号:我们需要在AX中创建一个用户用于爬网,创建一个域用户后Import为AX用户,指定它为Search crawler角色。
  • 安装企业搜索:安装程序会检查搜索应用程序和BCD应用程序是否配置并启动,安装结束后在Sharepoint管理站点中会看到BDC应用程序中导入名为“Microsoft Dynamics AX”和“Microsoft Dynamics AX Metadata”的两个外部系统,分别用于AX记录数据和AOT对象的搜索;同时将BDC应用程序导入的两个外部系统作为搜索的内容源添加到搜索应用程序中。我们可以直接在“Central Administration>Search Service Application 1: Manage Content Sources ”使用“Start all crawls”启动爬网,在“Crawl log”中我们可以看到爬网的日志,“Sucess”一栏的数字显示成功爬网的计数,如果“Errors”一栏有不是0的数字可以点击查看具体的错误。

安装完企业搜索,企业搜索服务的URL会被记录在“System administration>Setup>Enterprise portal>Enterprise portal parameters”的Search页面上,比如我的系统中EP安装在服务器根路径下“http://epserver”,相应的搜索服务URL则是“http://epserver/sites/DynamicsAxClientSearch/_vti_bin/search.asmx”,如果打开Sharepoint管理站点查看网站集,你可以在EP站点的应用程序下看到安装程序自动创建了一个路径名为“/sites/DynamicsAxClientSearch”的“Dynamics AX 客户端搜索”的站点。打开你的EP站点,尝试在搜索框中搜索内容,你可能会发现没有任何的搜索结果,这是因为EP站点及其子站点的站点设置“Search and Offline Availability ”中“Allow this site to appear in search results?”都被设成了“no”,其实即使你打开这个选项EP站点上也不会有太多有意义的结果,这是因为搜索服务的结果更多的在客户端程序呈现。安装完企业搜索后打开客户端程序,你会看到地址栏右侧多了一个搜索编辑框,输入你要搜索的内容比如料号、料名、客户名称等等就可以直接了,点击搜索的结果就会跳转到相应的记录。如果你还安装了Help server,Help server的结果会同时出现在搜索结果页的右面,点击则在Help view中打开相应的帮助内容。

那么什么样的内容能被搜索到呢?答案是AOT中Searchable属性被设为Yes的查询,默认只有Attachments、CustTableListPage、Workers、Vendor search等几个Query被设置为可搜索,你可以创建自己的Query并设置Searchable属性为Yes以暴露要被搜索的数据,记得使用Add-ins>Check best practices检查一下是否有错误。除了这个动作,还需要使用“System administration > Setup > Search > Update search crawler role”授予爬网用户对这些Query的只读权限以检视数据。这还不算完,你还需要使用“System administration > Setup > Search > Search configuration”发布数据到BDC应用服务,在这个工具中你可以选择要发布的Query及其字段,爬网服务会自动启动爬网程序索引数据,索引的结果就能出现在相应的搜索中。默认情况下,Sharepoint只会调度增量爬网,增量爬网只会在父表数据更改时更新搜索,因此为了保证连接字表的数据也能被搜索,需要定期运行full crawl全爬网。除此之外,搜索的结果是受用户角色权限控制的,只有用户有权限访问的表才会出现在结果中。出现在搜索结果的记录还受Table的FormRef和SearchLinkRefName属性的控制,前一个属性非空,记录才会出现在Client程序的搜索结果中;后一个属性非空,记录才会出现在EP的搜索结果中。

企业搜索构建在众多微软的产品上,任何一个环节有问题就可能导致不能工作,微软的产品账户及权限也是非常让人头疼的问题,需要输入账户的地方非常之多,虽然名义上是为了隔离应用更安全,但还是让人忍不住要吐槽。

原文地址:https://www.cnblogs.com/duanshuiliu/p/3103615.html