IBM Cognos 最佳实践: IBM Cognos Enhanced Search 最佳实践

文档性质:可靠实践;产品:IBM Cognos 10.1;关注领域:性能

配置 Enhanced Search 服务以及创建并维护搜索引擎的最佳实践。

Matthew Postle-Hacon, 团队领导,Cognos Go! Search, IBM

Matthew Postle-Hacon 是 IBM Cognos Platform 开发团队中的软件工程师,作为 Enhanced Search 的主要领导。Matthew 已经从事了 10 年的 IBM Cognos 产品的开发工作。



2011 年 7 月 22 日

免费下载:IBM® Cognos® Express V9.5 或者 Cognos® 8 Business Intelligence Developer Edition V8.4 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

目的

本文的目的是要为配置 Enhanced Search 服务以及创建并维护搜索引擎提供最佳实践。

适用性

本文适用于所有平台上的 IBM Cognos Software Version 10.1,还适用于其后续版本。以下服务均为 Enhanced Search 的组件。


服务

以下服务均为 Enhanced Search 的组件。

Index Search Service

Index Search Service 处理搜索并追溯(内容搜索)请求,而 Index Data Service 信息检索全文搜索结果。

IBM Cognos 环境可以包括 Index Search Service 的多个实例。

Index Update Service

Index Update Service 提供了主要内容检索功能。它将为索引收集数据并将信息传递到 Index Data Service 进行存储。

IBM Cognos 环境包括索引更新服务的多个实例。尽管它开始于应该配置的单个实例。

Index Data Service

Index Data Service 为条件和索引摘要文档的存储和检索提供基本的全文检索功能。尽管它开始于应该配置的单个实例。

我们建议您在数据层安装索引数据服务。同时在能够独自访问服务流程和索引文件的用户下运行 Index Data Service。


安装

基本配置

在具有 IBM Cognos 安装的所有应用程序层服务的调度程序下部署 Enhanced Search 组件(索引数据服务、索引升级服务和索引搜索服务)。

这是默认的 IBM Cognos Enhanced Search 安装和配置,对概念安装的验证也是有用的。在生产环境中,您可能希望配置分布式安装。对于其他性能来说,可在专用服务器上托管 Enhanced Search,它只启用了搜索服务。

索引更新服务和索引数据服务在运行时都会消耗大量内存,因此我们建议将它们进行独立安装。

分布式安装

您可以与分配 IBM Cognos 组件相同的安装和配置方法来分配 IBM Cognos Enhanced Search 组件。在每一台计算机上运行安装,然后通过指定分布式 IBM Cognos 组件的位置,以及启用和禁用所需的服务来完成配置。

每一个 IBM Cognos 环境都可以有多个索引数据服务、多个索引更新服务和多个索引文件。应在最初就启用单一的 Index Update 和 Index Data Service。要提高安全性,我们建议您在数据层安装索引数据服务。

要获取有关配置系统的更多信息,请参见 安装和配置指南 中的 “Enabling and Disabling Index Services in a Distributed Installation” 部分。


服务器配置

调度程序流程检查间隔

由于是在 Batch Report Services 上加载,所以应该在运行 Batch Report Services 的调度程序内启用已增强的流程验证。

编辑以下文件:

<install>/webapps/p2pd/WEB-INF/p2pd_deploy_defaults.properties

添加下列行:

processCheckInterval=30000

Index Update Service 连接

因为索引更新添加和删除条目,所以一次只应执行一个 Index Update Task。让推荐的实例运行,且仅用一个连接防止同时执行多个索引任务。启动 IBM Cognos Administration。在 Configuration 选项卡上选择 Dispatcher 和 Services。对于 Index Update Service 的运行实例来说,请将高峰期和非高峰期的最大连接数设置为 1。请参阅管理和安全性指南中的 “Set the Maximum Number of Processes and Connections”。

所有索引服务器的 TCP/IP 设置

在该平台下,各种搜索服务的运行会对通信资源的消耗产生显著地影响。在 Microsoft Windows 中,这对于将 TcpTimedWaitDelay 的最大值更新到 0x1E 来说是十分重要的,即设置等待时间为 30 秒,且 MaxUserPort 至少为 32768(十进制值)。请参考适用于您的操作系统的相关文档。


创建索引

创建有效的增强搜索索引的推荐步骤。

  1. 缩小索引 Scope
  2. 设置索引语言
  3. 创建初始索引
  4. 更新索引
  5. 在索引中包含报表数据

缩小索引 Scope

按内容类型缩小

虽然 Enhanced Search 的默认参数设置将允许管理员构建初始索引,但是这对于验证所有内容类型都需要特定环境或满足业务需求来说是很好的实践。您可以排除来自索引更新中特定内容类型的所有实例。启用 IBM Cognos Administration。在 Index Search 选项卡上,单击 Index,然后单击 General。根据 Indexable Types,请从索引中取消将要排除的对象。对于初始索引来说,如果您已经有了大量的报表输出,那么这对于排除第一次索引所通过的 “输出” 来说可能是十分明智的。

按内容位置缩小

要避免暴露不适合普通用户的目标,您可能希望限制以下内容类型;未使用的/归档的内容、预生产内容或专业内容(如系统报表)。

在创建 Index Update Task 时,添加一系列文件夹以便从索引中排除它们是有可能的。在 Excluded Content 部分,单击 Add。选择要从 Index Update Task 中排除的包和文件夹。

设置索引语言

如果您的内容存储和数据是多种语言的,那么您应该在创建第一个索引之前设置索引语言。

启动 IBM Cognos Administration。在 Index Search 选项卡上,单击 Index,然后单击 General。在 Indexing Locales 下输入一系列用逗号分隔的语言(例如,en, fr, ja)。

:只支持一个国家的标准语言,不支持该国家的语言变体(比如 en-us)。

创建初始索引

建议使用有权访问 Public Folders 中所有内容的账户创建搜索索引,以便所有内容都可提供给用户。

:不考虑用户构建索引的权限,默认情况下,搜索结果将只显示用户有权执行的搜索内容。请参阅管理和安全性指南中的“Secure Search Results”。

要帮助确保构建初始索引对用户只产生有限的影响,常见的做法是在报表使用率较低的时候安排第一个索引构建流程出现。

默认情况下,创建包括 Public Folders 中所有内容的新 Index Update Task(请参阅管理和安全性指南中的 “Create an Index Update Task”)时,应该排除那些您不希望索引的内容(请参见缩小 Scope 中的 “By Content Location”)。

您可以现在或者以后再选择运行初始索引。对于第一次执行来说,我们建议不要为此索引任务设置重复的时间表。

选择运行 Index Update Task,为 Content Options 选择 “Properties and metadata”, Scope 选择 “All entries”。按 “Run” 以便启动索引内容。

选项描述
Properties and metadata在包含该索引任务的内容(文件夹)中的对象属性和元数据可以被索引。也可以索引相关对象(例如,报表输出)。如果内容类型没有选为 "Indexable Types",就忽略此选项。
Only entries that have changed更新现有的索引。未更改的内容将保留在索引中。
All entries重新构建整个索引。所有以前索引过的内容都将被删除。

更新索引

内容发生更改时,索引不能自动更新,如在撰写报表时或在从 Content Manager 中删除对象时。您必须更新索引以便捕获所有更改。

基于用户的期望,您将希望安排 Index Update Task 以便增加更新索引内容。这可能是每隔几小时、几晚或甚至几周发生一次,取决于内容更改的频率。

返回到您所创建的初始 Index Update Task,并在您想要的时间间隔上安排该任务运行(请参见管理和安全性指南中的 “进度管理”)。为 Content Options 选择 “Properties and metadata”,并为 Scope 选择 “Only entries that have changed”。索引的增量更新将比初始索引创建需要的时间和资源更少。

:不应同时运行 Multiple Index Update Tasks。因为增量索引可以添加和删除条目,所以多个执行任务可导致重复或丢失项。如果您只有一个 Index Update Service 的运行实例,那么多个任务将会排队等待,直到执行任务完成。

在您的索引中包含报表数据

在您的索引中包含报表数据将会提高搜索结果的精度、增强为 “Create and Explore” 所生成的报表,以及在搜索结果中提供 “元数据 - 数据” 关系。例如,一个关于 “Canada” 的搜索还会返回包括元数据 Country and Sales Region 的报表,即使术语 “Canada” 目前没有任何报表输出。

在索引数据时有两个选项可用。

选项描述
Referenced data指出仅对在索引任务 Scope 之内的报表、查询和分析中遇到的表达式所 Referenced data 进行索引。可忽略选定内容中的模型对象。
All data指出在索引任务 Scope 之内的模型中遇到的All data进行索引。无论元数据是否已经包括在报表、查询或分析中。

索引所有数据会消耗大量资源,并需要大量的时间来完成,不建议大型数据仓库使用。

我们建议为相关包和文件夹创建多个 Index Update Tasks。为每一个满足业务需求以及数据更新频率的 Index Update Task 创建一个时间表。例如,PowerCube 仅需要在更新后进行索引,而关系数据库需要定期索引。

Indexing Referenced Data

创建新的 Index Update Task,包括文件夹,这些文件夹包含了您希望为其收集引用数据的报表、查询或分析。在 “Content Options” 下取消选择 “Properties and metadata”,然后选择 “Data values” 确保 “Referenced data” 被选中。在 “Scope” 下选择 “Only entries that have changed”(即使是第一次运行 Index Update Task)。

索引All data

创建新的 Index Update Task,包括您希望为其收集所有数据的数据包。在 “Content Options” 下取消选择 “Properties and metadata”,然后选择 “Data values” 确保 “All data” 被选中, 选择 “Scope” 下的 “Only entries that have changed”(即使是第一次运行 Index Update Task)。

:在收集数据时,该包以前的所有数据都会在索引中刷新。

不包括数据集

在索引数据时,可能一直希望排除索引、某些查询项目、来自包的尺寸或层次结构。如果它们非常大且包含价值不大的内容,那么不是性能的原因就是安全的原因。

启动 IBM Cognos Administration。在 Index Search 选项卡上,单击 Index,然后单击 Exclusion。输入包名称,其包括模型中的元数据、要排除的类型(例如,层次结构或尺寸)以及到对象类型的路径。


备份和恢复

我们建议您备份存储在文件系统上的索引,默认情况下的目录为 <installDir>/indexes/csn。至少这应该在长索引更新以后完成。只要当前不执行 Index Update Task,索引就可以恢复到其原来的位置。没有必要在恢复索引以后重新启动服务器。


调整和缩放

索引将重要的加载放置在 Batch Report Service 的操作上以便检索元数据和数据。此服务的性能将对索引产生显著的影响。

在索引详细性能数据期间生成,在日志目录中生成 "stat_<date>.html" 格式的文件。此信息可用于确定在各种 Search 服务中花费了多少时间以及在 Batch Report Service 中花费了多少时间。最终,可能需要为最佳性能部署多个 Batch Report Service 的实例。

要管理其他索引需求,请适当地计划并缩放 Batch Report Services。

可用于索引的高亲和性连接的数量必须等于在托管索引更新服务的服务器上可用的 CPU 数量。

索引级别

您可以设置高级配置参数(CSN.Indexing.Level)以便控制索引作业的 CPU 和内存使用,从而管理索引作业对可用资源的影响。如果服务器专用于运行 Indexing Update Service,那么应将值设置为 “high”。

转到 Index Search、Index、Advanced 页面并将高级参数设置为以下值之一(默认情况下是正常的)。

设置描述
high每个可用处理器的索引阈值都为 1.5。为专用于索引的服务器推荐。
medium每个可用处理器的索引阈值都为 1。其他应用程序在相同的服务器上运行时推荐。
low每个可用处理器的索引阈值都为 0.5。在低系统使用是必需时推荐。

:如果您选择 "high",您将需要确保有足够的高亲和性连接可用在 Batch Report Services 上。

索引共享

要缩放搜索和索引操作,您可以将多个索引数据服务实例部署到不同的服务器。因为搜索是受 CPU 限制的,所以您可以通过引入共享相同索引的新服务器来实现负载平衡。这种配置就是众所周知的索引共享。

索引共享允许多个索引数据服务来搜索和更新单一索引,这个单一索引位于分布式 IBM Cognos BI 环境中的共享文件系统中。所有索引数据服务都可以搜索所有索引文件。

要获得有关索引共享的更多信息,请参见 IBM Cognos 安装和配置指南中的 “Scaling Index Search by Using Index Sharing”。


日志

Enhanced Search 提供名为 ipfcsnclientconfig.xml(位于配置文件夹中)的示例 IPF 文件,其在默认情况下产生一些基本日志。额外的日志可通过将文件内的日志等级设置为 debug 来启用。将文件重命名为 ipfclientconfig.xml 以便启动日志。无需服务器重启。将会生成三个日志文件。

  • csn.log — 主日志文件
  • csnSearchSummary.log — 搜索请求的摘要
  • csnIndexing.log — 索引内容的详细信息

附录 A

延伸阅读

管理和安全新指南,第 30 章:管理索引搜索

安装盒配置指南,第 11 章:配置选项,配置 IBM Cognos 索引搜索

用户指南,第 3 章:IBM Cognos 连接,搜索项

参考资料

学习

获得产品和技术

讨论

  • 参与 developerWorks 博客 并加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=677307
ArticleTitle=IBM Cognos 最佳实践: IBM Cognos Enhanced Search 最佳实践
publish-date=07222011