搜索
您的当前位置:首页正文

Autonomy组件详细介绍

来源:知库网


AutonomyIDOLServer及相关组件

abc搜索应用系统说明书

DesignedBy:Autonomy-PS-赵南 To:abc搜索系统实施项目组

(篇幅和时间的限制,未能将AutonomyIDOL平台全部功能、参数及原理做最为详尽的阐述,请参考8.相关文档部分,查看相关文档,

获取最详尽的说明信息)

1. Autonomy搜索平台工作模型 ............................................................................................................................................ 4

1-1 Autonomy典型模型 ...................................................................................................................................................... 4 1-2 abc系统实施模型 ......................................................................................................................................................... 4 2 数据准备及各组件工作职能 .................................................................................................................................................. 5

2-1 abc系统使用组件名称及相关安装文件列表 ............................................................................................................. 5 2-2 abc系统数据采集详细信息 ......................................................................................................................................... 5 2-3 各组件功能简介 ........................................................................................................................................................... 5

2-3-1 IDOLServer简介 ............................................................................................................................................... 5 2-3-2 OmniGroupServer简介 ...................................................................................................................................... 6 2-3-3 ODBCConnector简介 ........................................................................................................................................ 6 2-3-4 HTTPConnector简介 ......................................................................................................................................... 6 2-4 abc系统中各组件部署情况及任务详细说明 ............................................................................................................. 7

2-4-1 IDOLServer ........................................................................................................................................................ 7 2-4-2 OmniGroupServer ............................................................................................................................................... 7 2-4-3 ODBCConnector ................................................................................................................................................. 7 2-4-4 HTTPConnector .................................................................................................................................................. 8

3. Autonomy核心组件安装、配置及启动 ................................................................................................................................ 8

3-1 IDOLServer .................................................................................................................................................................... 8

3-1-1 IDOLServer的安装 ........................................................................................................................................... 9 3-1-2 更新分词 ......................................................................................................................... 错误!未定义书签。 3-1-3 IDOLServer核心组件查询操作工作原理 ...................................................................................................... 15 3-1-4 IDOLServer的高级搜索功能.......................................................................................................................... 16 3-1-5 IDOLServer关于集成文档权限查询原理 ...................................................................................................... 24 3-1-6 IDOLServer中的文档及其权限信息 .............................................................................................................. 24 3-1-7 IDOLServer中的用户及其权限信息 .............................................................................................................. 24 3-1-8 IDOLServer中的带权限查询的实现 .............................................................................................................. 25 3-1-9 用户自定义关键词表和用户自定义过滤词表 .............................................................................................. 25 3-1-10 IDOLServer的配置 ....................................................................................................................................... 25 3-1-11 IDOLServer的启动和停止 ............................................................................................................................ 26 3-2 OmniGroupServer ........................................................................................................................................................ 26

3-2-1 OmniGroupServer的安装 ................................................................................................................................ 26 3-2-2 OmniGroupServer的配置 ................................................................................................................................ 26 3-2-3 OmniGroupServer的启动和停止 .................................................................................................................... 27 3-3 ODBCConnector .......................................................................................................................................................... 27

3-3-1 ODBCConnector的安装 .................................................................................................................................. 27 3-3-2 ODBCConnector的配置 .................................................................................................................................. 33 3-3-3 ODBCConnector的启动和停止 ...................................................................................................................... 42 3-4 HTTPConnector ........................................................................................................................................................... 42

3-4-1 HTTPConnector的安装 ................................................................................................................................... 42 3-4-2 HTTPConnector的配置 ................................................................................................................................... 42 3-4-3 HTTPConnector的启动和停止 ....................................................................................................................... 45

4数据备份及数据恢复 ............................................................................................................................................................. 45 5服务状态监控 ......................................................................................................................................................................... 46 6各个组件的服务访问限制策略 ............................................................................................................................................. 46

7 开发相关API......................................................................................................................................................................... 46 8 系统验证 ................................................................................................................................................................................ 55 9 相关文档 ................................................................................................................................................................................ 56 10 Autonomy产品实施注意事项以及常见故障排除 ............................................................................. 错误!未定义书签。

10.1 安装AutonomyIDOLServer软件的版本匹配 ........................................................................ 错误!未定义书签。 10.2 产品的license规定了产品的功能和限制 .............................................................................. 错误!未定义书签。 10.3 更换license或系统报uid不匹配时的处理 ........................................................................... 错误!未定义书签。 10.4 系统需要打开IDOL服务的端口 ............................................................................................ 错误!未定义书签。 10.5 索引文档量达到上限的处理方式 ........................................................................................... 错误!未定义书签。 10.6 ..................................................................................................................................................... 错误!未定义书签。 7 应用程序中出现乱码的分析与解决方式 .................................................................................... 错误!未定义书签。 8 应用程序中检索词不能高亮显示时的处理 ................................................................................ 错误!未定义书签。 9 Fetch安装的端口冲突处理 ........................................................................................................... 错误!未定义书签。 10 Fetch抓取数据出现乱码的分析和处理 ..................................................................................... 错误!未定义书签。 11 数据更新问题的分析和处理 ...................................................................................................... 错误!未定义书签。 12. ....................................................................................................................................................... 错误!未定义书签。

1. Autonomy搜索平台工作模型

1-1 Autonomy典型模型

图1-1-a

1-2 abc系统实施模型

图1-2-a

2 数据准备及各组件工作职能

abc搜索平台实施,主要实现将所内各系统中的数据抓取,并继承现有系统中的用户权限,实现高效的、带权限的简单搜索和高级搜索的整合,并提供数据分类、聚类、个人代理以及可视化展示等高级应用。以下分别介绍abc搜索平台涉及使用的Autonomy组件信息、需要采集的数据库数据的详细结构信息、简单的Autonomy各个组建的功能介绍、各组件在abc所搜索平台的具体职责以及各个组建的实际部署详情。

2-1 abc系统使用组件名称及相关安装文件列表

AutonomyIDOLServer736 OminiGroupServer730 ODBCConnector737 HTTPConnector7310

2-2 abc系统数据采集详细信息

ProceedingReport(外文资料库):SQLServer2005 KMS(知识管理系统):SQLServer2005 Achives(档案库):SQLServer2005 CompetiveIntelligence(外网数据): ABCIntranet(内网数据): OA(OA系统):SQLServer2005 ERP(ERP系统):Oracle PDM(PDM系统):Oracle

2-3 各组件功能简介

2-3-1 IDOLServer简介

IDOLServer-InteligentDateOperatingLayer,智能化数据操作平台,是Autonomy搜索平台的核心服务产品。IDOLServer中包含5个组件,AgentStore、Category、Community、Content和View。

AgentStore是用户服务器,主要负责存储用户信息的全部信息,如用户名、密码、用户聚焦等等。 Category是分类服务器,主要负责将IDOL中的所有数据按照用户指定的逻辑进行分类,并按照指定的标准训练分类,将所有的数据文档归类存储。

Community是用户和内容交互服务器,用来生成交互信息,如安全字符串、专家定位等等。 Content是内容服务器,整个IDOL平台的核心部件,所有的文档内容都是以索引结构存储在Content组件中的,Content组件是一个数据容器,同时又是一个简单、高效、功能健全的搜索服务器。简单,体现在使用非常容易,一个action=query&text=关键字,就可以实现对关键字的查询。高效,体现在大数据量、复杂的关键字逻辑表达式、复杂的数据筛选逻辑、复杂的安全确认信息的叠加查询,依然迅速响应。功能健全体现在能够实现这对各种关键字查询逻辑、各种数据筛选逻辑、安全查询逻辑的组合式查询。

View是显示模板,提供了将返回的xml格式查询结果嵌套在模板中显示。

这几个组件将整个IDOL平台整合为一个功能强大的搜索利器,为企业的信息化查询提供强有力的支持。

2-3-2 OmniGroupServer简介

OmniGroupServer,简单的说就是根据用户名,返回该用户在各个应用系统中对应的组信息的服务器。OmniGroupServer支持eRoom,LDAP,Notes,NT ,Documentum,Livelink等应用系统的身份确认集成,并支持ODBC,Oracle这类数据库中定义的表单对应的用户、组身份确认集成,同时甚至支持任意格式的text文本中写入的用户、组对应规则。

OmniGroupServer是实现带权限搜索的重要组件之一,在用户登录后,向IDOL发送读取用户信息指令,IDOL会自动向配置的所有OmniGroupServer发送查询指令,将OmniGroupServer返回的用户组信息整理后生成一个加密的安全信息串,这个串包含了用户在所有配置的应用系统中的组对应信息以及这个安全串的过期时限,在这个用户查询的过程中,用这个安全串做匹配查询,实现带权限搜索的功能。

总之,OmniGroupServer是灵活、高效的实现带安全搜索的重要部件。

2-3-3 ODBCConnector简介

ODBCConnector,Autonomy众多抓取连接器中的一款,是专门负责将数据库中的表单或视图中的内容抓取下来,按照用户配置,将数据整合成IDOLServer专用的idx格式,并将其索引到IDOLServer搜索引擎的抓取工具。

ODBCConnector的抓取过程主要分成3个步骤:首先,ODBCConnector的可执行文件按照用户的配置,将所有抓取任务里罗列的表单数据抓取到本地;然后ImportSlave和kv负责将抓取下来的数据按照用户配置的格式模板生成idx文件;最后,将idx成批索引到IDOLServer中。

ODBCConnector主要包含三重配置文件:主配置文件,任务配置文件和任务数据模板。

在主配置文件中,可以定义ODBCConnector的抓取任务,任务数可以是多个。主要配置任务名,任务涉及的数据库服务名、连接用户名、密码以及任务的配置文件名信息。

在任务配置文件中,主要定义抓取模板的类型(htm或idx,详情查看ODBCConnector配置部分),按照路径抓取附件文件的配置,目标表单名或视图名,设置主键、select语句、where条件等,并指定抓取后的数据使用的任务数据模板文件。

在任务数据模板文件中(htm或idx后缀),主要包含在IDOLServer中包含的各个标签的名称和数据表或数据视图的字段的对应。

这三重配置层次清晰,各负其职,按照用户的需要,将格式化的数据信息索引到IDOL服务器中。

2-3-4 HTTPConnector简介

HTTPConnector,Autonomy众多抓取连接器中的一款,是专门负责处理网络页面数据,按照用户配置,将数据整合成IDOLServer专用的idx格式,并将其索引到IDOLServer搜索引擎的抓取工具。 HTTPConnector的抓取过程主要分成3个步骤:首先,HTTPConnector的可执行文件按照用户的配置分析网站中的链接地址,将所有符合配置的数据抓取到本地;然后ImportSlave和kv负责将抓取下来的数据按照用户配置的格式模板生成idx文件;最后,将idx成批索引到IDOLServer中。HTTPConnector的所有功能都可以在HTTPConnector.cfg中配置,详情参见HTTPConnector配置部分。

2-4 abc系统中各组件部署情况及任务详细说明

2-4-1 IDOLServer

实例数:1

服务器地址:172.16.2.65 IDOL ACI端口:9000

安装路径:E:\\Autonomy\\IDOLServer736 任务说明:提供数据引擎服务

2-4-2 OmniGroupServer

实例数:1

服务器地址:172.16.2.65 IDOL ACI端口:3057

安装路径:E:\\Autonomy\\OMNIGroupServer 任务说明:提供权限用户所对应组服务

2-4-3 ODBCConnector

实例数:5

实例1

服务器地址:172.16.2.63 服务端口:40030

安装路径:E:\\Autonomy\\ODBCConnector 任务说明:外文资料库数据抓取

实例2

服务器地址:172.16.2.63 服务端口:40050

安装路径:E:\\Autonomy\\ODBCConnector2 任务说明:档案库数据抓取

实例3

服务器地址:172.16.2.63 服务端口:40070

安装路径:E:\\Autonomy\\ODBCConnector4 任务说明:OA系统数据抓取

实例4

服务器地址:172.16.13.67 服务端口:40040

安装路径:D:\\Autonomy\\ODBCConnector 任务说明:ERP系统数据抓取

实例5

服务器地址:172.16.13.67 服务端口:40040

安装路径:D:\\Autonomy\\ODBCConnector 任务说明:PDM系统数据抓取

2-4-4 HTTPConnector

实例数:2

实例1

服务器地址:172.16.13.67 服务端口:40030

安装路径:D:\\Autonomy\\HTTPConnector 任务说明:内网数据抓取

实例2

服务器地址:10.6.18.127 服务端口:40030

安装路径:D:\\Autonomy\\HTTPonnector 任务说明:外网数据抓取

3. Autonomy核心组件安装、配置及启动

3-1 IDOLServer

安装文件:

D:\\Autonomy\\software\\ IDOLServer_7.3.6.0_WINDOWS.exe D:\\Autonomy\\software\\licensekey.dat

3-1-1 IDOLServer的安装

运行安装文件IDOLServer_7.3.6.0_WINDOWS.exe,启动安装程序

License条款确认

选择安装组件,这里只选择IDOLServer和DishLicenseServer

选择安装路径,默认为/opt/Autonomy/IDOLServer

IDOL主机名,默认为安装所在机器的主机名

指定IDOL的ACI端口、索引端口和服务端口,默认值即可

指定DiSH服务器的ACI端口和服务端口,默认值即可

指定需要发送邮件时使用的SMTP服务主机和端口信息

指定安装文件中licensekey.dat文件所在的全路径

确认先前的安装信息

开始安装

IDOL安装完成

3-1-3 IDOLServer核心组件查询操作工作原理

图3-3-3-a

如上图所示,是整个IDOLServer所有组件联合工作时的处理流程,但大多数操作都只包含其中几个、甚至是某一个组件的参与。下面以非权限确认查询、权限确认查询、分类操作、用户操作这几个典型操作进行讲解:

实现不带权限的查询:只需直接向IDOL发送一条查询指令,Content组件独立工作,将查询结果以Autonomy默认的XML格式返回。

实现带权限的查询:首先要确保用户已经在IDOL中存在,用户信息保存在AgengStore组件中。最重要的是GroupServer服务要正常,并且在IDOL中正确配置。这样,当用户登录到查询的应用系统中时,首先发送一个读取用户信息的指令给IDOL,这条指令实际是从AgentStore中确认此用户是否存在,并通过Community组件和GroupServer交互,取得这一用户在各个安全系统中的组信息,将用户名和用户组以及过期失效等权限安全的信息按照特定的格式生成一个加密的权限字符串,这个字符串在用户登录直到失效时限为止,一直保存在查询系统中。当用户发送查询指令时,将这个权限字符串作为一个参数发送给IDOL,Content组件会返回权限比对的查询结果。(具体实现细节见3-3-4至3-3-7)

实现分类的管理:向IDOL发送分类创建、训练、激活、删除等管理命令,Content组件将涉及到的数据结果及具体管理指令传给Category组件,由Category组件完成具体的分类管理操作,建立特定的数据结构,以便今后其它分类操作的进行。

实现分类的查询:向IDOL发送分类查询指令,Content组件从Category组件返回的数据结构中解析出内部存储的哪些数据项作为结果返回,将所有的结果以Autonomy默认的XML格式返回。

实现用户操作:向IDOL发送用户创建、修改、删除等操作几名,AgengStore独立工作,实现相应的用户操作。

3-1-4 IDOLServer的高级搜索功能

从IDOLServer中查询数据,操作十分简单,只需通过htttp发送action=query&text=关键字,就可以得到一个XML格式的相应结果,将这条XML结果解析显示在终端上,就完成了简单的查询。但IDOLServer实现的查询功能远远比这强大,下面分别介绍一些常用的高级搜索功能,所需的命令参数,并对实现其功能在配置中需要做的修改加以说明。

3-1-4-1 精确匹配搜索

动作:action=query 查询参数:”关键字”

必要配置:[Server]段添加配置AdvancedSearch=true 说明:只需将关键字用引号括起,当做发送关键字

举例:http://127.0.0.1:9000/action=query&text=”航空航天”,“航空航天”关键字会被分成“航空”和“航天”两个term,该查询只返回全部包涵着两个term的文档,忽略只包含其中之一的文档 3-1-4-2 限定数据库范围

动作:action=query

查询参数:databasematch=库名1,库名2…… 必要配置:默认功能

说明:将数据库名称作为参数值传给databasematch参数,可实现在指定的库中进行查询。多个库名以逗号间隔,大小写不敏感

举例:http://127.0.0.1:9000/action=query&text=航空&databasematch=ProceedingReport,Achives,该查询返回包涵关键字“航空”的ProceedingReport和Achives库中的所有文档

3-1-4-3 限定时间范围

动作:action=query

查询参数:mindate=日/月/年&maxdate=日/月/年 必要配置:默认功能

说明:mindate和maxdate分别代表日期的最早和最后期限,这两个参数只与文档中DREDATE标签的值做捆绑。DREDATE存储的是JAVA的EPOCHSECONDS格式的时间的前十位值,即精确到秒级。发送时按照日/月/年的格式。 举例:http://127.0.0.1:9000/action=query&text=航空&mindate=01/05/2008&maxdate=01/08/2008,该查询返回包涵关键字“航空”的DREDATE标签存储的日期在2008年5月1日至2008年8月1日之间的所有文档

3-1-4-4 实现分页 动作:action=query

查询参数:start=起始数据序号&maxresults=结束数据序号 必要配置:默认功能

说明:假设对于一条查询语句共有total篇文档符合要求,当前显示的页号为n,每页m条记录的话,那么start=(n-1)*m+1,maxresults=n*m,如果不添加这两个参数,IDOL默认返回前6条相关度最高的结果

举例:http://127.0.0.1:9000/action=query&text=航空&start=1&maxresults=10,假设每页显示10条结果,该查询返回查询“航空”关键字的第一页结果 3-1-4-5 生成动态摘要

动作:action=query

查询参数:summary=context 必要配置:默认功能

说明:可以根据搜索关键词,从正文中提取包含关键词term的部分生成动态摘要

举例:http://127.0.0.1:9000/action=query&text=航空&summary=context,该查询返回的XML结果中,每篇文档中会包含autn:summary标签,标签的值为文档中包含“航空”这个term的一段内容 3-1-4-6 正文、摘要中关键字描红

动作:action=query

查询参数:highlight=terms,summaryterms ; starttag=高亮起始标签 ; endtag=高亮结束标签

必要配置:在[SetHighlightFields]段,在PropertyFieldCSVs参数的值中添加想要高亮显示的标签名,*/起始,多个标签以逗号间隔。默认为DRETITLE、DRECONTENT两个标签

说明:将查询结果的文档中所有HighLightType的标签和summary中包含的term高亮显示。默认情况下,在term前后加上,也可以自定义前后添加的html标签,分别将标签值作为StartTag和EndTag的参数值传递即可

举例:http://127.0.0.1:9000/action=query&text=航空&summary=context&highlight=terms,summaryterms&starttag=&endtag=,该查询语句返回包含“航空”关键字的文档,文档中包含了自动摘要,并且文档摘要中和文档中所有的HighLightType类型的标签值中的“航空”前后均添加了,用作高亮显示。

3-1-4-7 实现按数据库名的统计

动作:action=query

查询参数:totalresults=true ; predict=false 必要配置:默认功能 说明:totalresults=true,在返回的XML结果中会出现autn:totalhits标签,代表符合条件的结果总数,结合predict=false参数,会在XML结果中出现autn:databasehits标签,中间包含IDOL中每一个数据库名做为name属性值的autn:database子标签,标签的值代表所有查询结果中,对应这个库的结果数

举例:http://127.0.0.1:9000/action=query&text=航空&totalresults=true&predict=false,该查询语句返回包含“航空”关键字的文档,并且XML结果中包含文档总数信息以及每个库中对应结果数目信息

3-1-4-8 实现按某一标签的统计

动作:action=getquerytagvalus

查询参数:fieldname=标签名 ; documentcount=true

必要配置:在[SetParametricFields]段,在PropertyFieldCSVs参数的值中添加想要统计的标签名,*/起始,多个标签以逗号间隔。默认值为MYPARAMETRICFIELD

说明:fieldname=标签名,在返回的XML结果中会出现autn:field标签,其子标签autn:name的值就是指定的标签名,它还包含了在查询结果中包含的这个标签的所有取值,每一种取值作为一个名为autn:value的子标签值,autn:total_values的标签值表示查询结果中这个标签所有取值的总数。documentcount=true,在每一个autn:value的子标签后会出现count属性,属性的值就是这个取值在查询结果中出现的次数

举例:http://127.0.0.1:9000/action=getquerytagvalues&text=航空&fieldname=FetchSource&documentcount=true,该查询语句返回包含“航空”关键字的文档按照FetchSource标签的统计信息,XML结果中包含所有符合条件的记录FetchSource标签的取值数目,对于每种取值各自对应的文档数目的信息

3-1-4-9 实现特定字段符合特定规范的查询(字符型)

动作:action=query

查询参数:fieldtext=操作类型{参数值}:标签名

必要配置:在[SetMatchFields]段,在PropertyFieldCSVs参数的值中添加想要做字符串比对的标签名,*/起始,多个标签以逗号间隔。默认值为MYMATCHFIELD

说明:fieldtext参数支持的操作类型主要包含MATCH和STRING操作,MATCH是完全的字符匹配,它返回指定标签名的值严格匹配参数值的文档;STRING是字符串包含操作,它返回指定标签的值包含参数值的文档

举例:http://127.0.0.1:9000/action=query&text=航空&fieldtext=MATCH{CompetiveIntelligence}:FetchSource,该查询语句返回包含“航空”关键字,并且FetchSource标签的值为“CompetiveIntelligence”的文档

3-1-4-10 实现特定字段符合特定规范的查询(数字型)

动作:action=query

查询参数:fieldtext=操作类型{参数值}:标签名

必要配置:在[SetNumericFields]段,在PropertyFieldCSVs参数的值中添加想要做字符串比对的标签名,*/起始,多个标签以逗号间隔。默认值为MYNUMERICFIELD

说明:fieldtext参数支持的操作类型主要包含EQUAL、GREATER、LESS和NRANGE操作,分别代表等于、大于、小于和区间取值操作(其中NRANGE需要传递两个参数值作为取值区间的上下限,中间用逗号分隔),它返回指定标签名的值等于、大于、小于或介于区间上下限之间的文档

举例:http://127.0.0.1:9000/action=query&text=航空&fieldtext=NRANGE{1,10}:MYNUMERICFIELD,该查询语句返回包含“航空”关键字并且MYNUMERICFIELD标签的值介于1至10之间的文档

3-1-4-11 实现在结果中进行二次查询 动作:action=query

查询参数:storestate=true ; statematchid=stateid 必要配置:默认功能

说明:初次查询加入storestate=true参数,返回的xml结果中出现autn:state标签,值为一个stateid,作为记录当前的结果的标志;二次查询加入statematchid=一次查询stateid值,返回的xml结果为在初次查询的结果中再查询的结果 举例:初次查询http://127.0.0.1:9000/action=query&text=”航空”&storestate=true,该查询语句返回包含“航空”关键字的文档并且返回一个stateid,假设值为775ACC-6,则二次查询http://127.0.0.1:9000/action=query&text=”战略”&statematchid=775ACC-6,该查询返回初次查询的结果中包含“战略”关键字的文档

3-1-4-12 实现同义词查询

动作:action=query

查询参数:synonym=true 必要配置:

1、假设[FieldProcessing]段已有操作列表的序号已经排列到21,则在21=xxxx的下一行添加: 22=SetSynonymMatch

2、在[FieldProcessing]操作列表下面添加如下配置: [SetSynonymMatch]

Property=ApplySynonymMatch

PropertyFieldCSVs=*/DRETITLE,*/DRECONTENT

PropertyFieldCSVs参数的值应该和索引类型设置段的参数值相同,*/起始,多个标签以逗号间隔,这样才可以实现在所有的索引字段中实现同义词查询

3、在[FieldProcessing]段下方Properties部分后面添加如下配置: [ApplySynonymMatch]

SynonymType=SynonymJob

[Synonym] 0=SynonymJob

[SynonymJob] file=syn.txt

MaxExpandLevel=1

4、在IDOL的安装目录/IDOL/content文件夹下创建syn.txt,按照[语言编码]为语言区域分隔标识,每一行代表一个统一词匹配,同一行的多个词间用逗号分隔,建立同义词表。 比如:

[chineseCHINESESIMPLIFIED] 航空,航天

代表在简体中文的编码中,航空、航天这两个词是同义词 说明:查询时加入synonym=true

举例: http://127.0.0.1:9000/action=query&text=航空&synonym=true,该查询语句返回包含“航空”或“航天”关键字的文档

3-1-4-13 实现推荐搜索词

动作:action=query

查询参数:querysummary=true

必要配置:在[Server]段添加QuerySummaryAdvanced=true

说明:查询时加入querysummary=true,可以实现在返回的所有文档中提取关键term作为相关搜索词的推荐,返回的xml结果中出现autn:querysummary标签,值为一个逗号分隔的terms序列。配置中[Server]段有两个可选参数可以调整推荐term的结果:

QuerySummaryMaxDocLength:指定从每篇文档中提取多少字符的内容生成推荐的term,默认为0,代表不限制 QuerySummaryLength:指定返回的推荐term或者phrase的个数,默认为10个

举例:http://127.0.0.1:9000/action=query&text=航空&querysummary=true,该查询语句返回包含“航空”关键字的文档并且在autn:summary的标签中显示推荐的搜索词

3-1-4-14 实现自动聚类

动作:action=query 查询参数:cluster=true 必要配置:默认功能

说明:查询时加入cluster=true,可以实现将返回的所有文档自动聚类,返回的xml结果中出现autn:cluster和autn:clustertitle标签,值分别为一个聚类的id号和聚类标题。配置中[Server]段有一个可选参数可以调整聚类的结果: clusterthreshold:指定归属为同一类别的文档的相似度,默认为50。

举例:http://127.0.0.1:9000/action=query&text=航空&cluster=true,该查询语句返回包含“航空”关键字的文档并且在autn:cluster和autn:clustertitle的标签中显示聚类id和聚类标题 3-1-4-15 实现自动推送相关文章

动作:action=suggest

查询参数:id=文档id ; reference=文档drereference值 必要配置:默认功能

说明:suggest操作,将文档的id作为id参数值或者将文档的drereference值作为reference参数值,均可以实现 举例:http://127.0.0.1:9000/action=suggest&id=11366,IDOL根据docid为11366的文档从库中推荐出内容最为相关的文档

3-1-4-16 实现将结果自定义排序

动作:action=query

查询参数:sort=排序关键字 必要配置:默认功能

说明:IDOL支持多种结果排序方式,用排序的关键字区分。默认排序方式为相关度降序,关键字为Relevance,以下为其它排序方式的说明:

排序关键字 date reversedate docidincreasing dociddecreasing database cluster reverserelevance 排序名称 日期从新到旧 日期从旧到新 文档id升序 文档id降序 数据库序号升序 聚类id升序 相关度从低到高 说明 对DREDATE标签有效 对DREDATE标签有效 即IDOL中配置的先后顺序 仅当查询时cluster参数为true时生效,且cluster排序具有最高排序级别 下表做sortmethod说明 fieldname:sortmethod 按fieldname标签指定的sortmethod规则排序 sortmethod关键字 排序名称 numberincreasing numberdecreasin alphabetical 数字升序 数字降序 字母升序 说明 标签应设置为NumericType类型,在[SetNumericFields]段的PropertyFieldCSVs添加标签名(效仿3-3-3-10) 标签应设置为NumericType类型,在[SetNumericFields]段的PropertyFieldCSVs添加标签名(效仿3-3-3-10) 标签应设置为SortType类型(下文补充介绍设置方法) 标签应设置为SortType类型(下文补充介绍设置方法) 若标签为NumericType类型,等效为numberincreasing,若为SortType,等效为alphabetical类型 若标签为NumericType类型,等效为numbericreasing,若为SortType,等效为reversealphabetical类型 reversealphabetical 字母降序 increasing decreasing 升序 降序

多种排序方式叠加时按照嵌套顺序从前之后用“+”连接

举例:http://127.0.0.1:9000/action=query&text=航空&sort=date+AUTHOR:increasing,该查询语句返回包含“航空”关键字的文档并且按照日期从新到旧、AHTHOR标签的值按字母的先后排序

补充:设置标签SortType类型

设置标签为SortType类型,可以在查询时按照此标签的值指定的排序规则为查询结果排序,具体方法如下: 1、假设[FieldProcessing]段已有操作列表的序号已经排列到21,则在21=xxxx的下一行添加: 22= SetSortType

2、在[FieldProcessing]操作列表下面添加如下配置: [SetSortType]

Property=ApplySortType

PropertyFieldCSVs=*/MYSORTTYPE

PropertyFieldCSVs参数的值应该包含所有与排序相关的标签名,*/起始,多个标签以逗号间隔 3、在[FieldProcessing]段下方Properties部分后面添加如下配置:

[ApplySortType] SortType=true 配置完成

3-1-4-17 实现将结果按标签绑定

动作:action=query

查询参数:combine=simple+标签名1+标签名2+… ; combine=cluster 必要配置:

1、假设[FieldProcessing]段已有操作列表的序号已经排列到21,则在21=xxxx的下一行添加: 22= SetReferenceForCombine

2、在[FieldProcessing]操作列表下面添加如下配置: [SetReferenceForCombine] Property=CombineReference

PropertyFieldCSVs=*/标签名1,*/标签名2

PropertyFieldCSVs参数的值应该包含所有想执行绑定操作的标签,*/起始,多个标签以逗号间隔 3、在[FieldProcessing]段下方Properties部分后面添加如下配置: [CombineReference] ReferenceType=TRUE TrimSpaces=TRUE

说明:实现combine操作有几种类型,最常用的是simple+自定义标签名。simple的意义在于可以将一篇文档的多个section当成一条结果返回,这在对于文档内容长、存在分段的情况十分必要;标签名实现了按照用户任意指定的标签值进行绑定,为实现灵活的用户需求提供了接口。另外,combine=cluster,在查询时动态聚类时(cluster=true,见3-3-3-14)可以按照聚类id的顺序显示结果

举例:http://127.0.0.1:9000/action=query&text=航空&combine=simple+DRETITLE,该查询语句返回包含“航空”关键字的文档并且在结果中如果多篇文档包含同一个标题,只返回相关度最高的一篇

3-1-4-18 实现复杂的关键字与或非表达式

动作:action=query

查询参数:*,?,AND,OR,NOT,XOR,: 必要配置:默认操作

说明:IDOL支持关键字的复杂逻辑,*代表0到多个字符、?代表一个字符、AND代表两个关键字表达式的逻辑与关系、OR代表或关系、NOT代表非关系、XOR代表异或关系,另外:后面接标签名,可以在指定的标签里应用前面的关键字表达式,标签必须是索引标签。通过使用这几个字符,可以实现任意复杂的关键字表达式。

举例:http://127.0.0.1:9000/action=query&text=(航空 NOT 航天):DRETITLE OR (战略 AND 合作):DRECONTENT,该查询语句返回DRETITLE中包含“航空”而不包含“航天”关键字或者DRECONTENT同时包含“战略”和“合作”的文档

3-1-4-19 实现手动创建2D图和光谱图

动作:action=ClusterSnapshot; action=ClusterCluster; ClusterSGDataGen

说明:

1、首先使用ClusterSnapshot命令生成热点快照

2、使用ClusterCluster命令根据热点快照的结果生成热点聚类和2D图 3、根据7次聚类的结果使用ClusterSGDataGen命令生成光谱图 举例:

1、http://localhost:9000/action=ClusterSnapshot&TargetJobname=myjob&databases=ABCIntranet,CompetiveIntelligence 2、http://localhost:9000/action=ClusterCluster&SourceJobname=myjob&TargetJobname=myjob_clusters&domapping=true 3、http://localhost:9000/action=ClusterSGDataGen&SourceJobname=myjob&TargetJobname=myjob_sg

3-1-4-20 实现自动创建2D图和光谱图

动作:在IDOLServer.cfg中配置 必要配置:

[AnalysisSchedules] Number=3

[AnalysisSchedule0]

ScheduleStartTime=23:00 ScheduleInterval=1 day ScheduleCycles=-1

ScheduleAction=CLUSTERSNAPSHOT TargetJobname=myjob

Databases=ABCIntranet,CompetiveIntelligence

[AnalysisSchedule1]

ScheduleStartTime=23:15 ScheduleInterval=1 day ScheduleCycles=-1

ScheduleAction=CLUSTERCLUSTER SourceJobName=myjob

TargetJobName=myjob_clusters DoMapping=TRUE

[AnalysisSchedule2]

ScheduleStartTime=23:20 ScheduleInterval=1 day ScheduleCycles=-1

ScheduleAction=CLUSTERSGDATAGEN Interval=606000

SourceJobName=myjob TargetJobName=myjob_sg

说明:Schedule0用来生成热点快照,每天23点执行,一天执行一次,无限循环;Schedule1用来生成聚类2D图,每天23点15分执行,一天执行一次,无限循环;Sechedule2用来生成光谱图,23点20分执行,一天执行一次,无

限循环。热点快照一般需要3-5分钟左右生成完成,所以Schedule1一般稍后执行。Schedule2需要7次Schedule1的数据,604800秒为7天,设置Interval=606000为7天多一点儿,把滞后的时间差补上。

3-1-5 IDOLServer关于集成文档权限查询原理

IDOLServer的核心组件是Content,中间保存了所有的文档信息,并且所有的查询指令也是Content执行。为了实现文档权限的集成查询,一方面需要知道当前登录查询系统的用户身份,另一方面对于数据库中的每篇文档,应该包含可以访问它的用户名或者用户组信息。Content组件本身不负责查询之外的任何操作,实现带权限查询,一方面需要AgentStore、Community两个组件的协作,用来完成用户身份的确认工作,生成一个IDOL中固有格式的加密的用户权限信息字符串,另外需要在文件抓取的时候将文件的权限信息也以IDOL能够识别的固有格式作为文档信息的一部分,索引到数据库中。有了这两方面的准备,在查询时只要在命令中加入securityinfo参数,Content就可以独立完成带权限的查询工作,将用户的安全信息和文档的权限信息做比对,返回正确的查询结果。下面3-1-6和3-1-7将具体从这两方面讲解,并在3-1-8给出总结。

3-1-6 IDOLServer中的文档及其权限信息

IDOLServer中文档的权限信息,作为一个字段的值存放在文档本身,并被索引到IDOL中去,作为权限查询时每篇文档能够提供的权限比对的参考。

由于业务系统的复杂性,文档的权限管理也异常复杂。Autonomy开发了众多的Connector产品,可以将常用的集成权限的应用系统中的文档内容连同其权限信息自动抓取并索引到IDOLServer中,只需要进行非常简单的配置就可以实现。比如:NotesConnector,只需配置NotesServer的服务器信息和要抓取的库名;Documentum,只需要配置Documentum的主机信息和Docbase名等等。另外最为重要的,Autonomy提供了标注的权限信息模板,用来实现自定义的权限信息整合,这在数据库应用系统中广泛使用。通常来说,无论多么复杂的应用系统,针对于某一篇文档来说,都只能归结到这篇文档哪些用户可以访问、哪些组用户可以访问、哪些用户不能访问、哪些组不能访问。Autonomy的标准安全信息就是依此形成的,如下:

检查类型:U:能访问的USER列:G:能访问的GROUP列:NU:拒绝访问的USER列:NG:拒绝访问的GROUP列 列中的多个值中间逗号分隔,检查类型取值为0或者1,0代表搜索时先检查用户或其所在的组是否某篇文档被拒绝,若没有被拒绝,接着检查用户或其所在的组是否能够访问某篇文档,若可以,这篇文档将作为结果返回;1代表只做拒绝检查,即只要该用户或者其所在的组没有被这篇文档拒绝,这篇文档就可以作为结果返回。具体设为0和1要看应用系统的要求。

在数据抓取的过程中,将每篇文档的安全信息加密后保存到AUTONOMYMETADATA字段中,作为文档的权限信息比对参考,供IDOL查询时使用。

另外文档的安全类型字段SECURITYTYPE字段也是每篇文档必须的,它必须是IDOL中设置的多种安全类型中的一个,通过这个字段的值,IDOL去决定这篇文档的安全类型,同用户安全信息中对应类型的用户名和组做比对。 备注:也可以将安全信息存储在其它名称的标签中,但是在IDOL的配置中需要做诸多修改,才能让今后查询时按照自定义标签内容作为安全信息的匹配标准。AUTONOMYMETADATA、SECURITYTYPE字段是IDOL默认的,推荐不做修改。3-1-10中对应配置的注释中会加以说明。

3-1-7 IDOLServer中的用户及其权限信息

IDOLServer中用户及其权限信息,当一个用户登录到搜索应用系统时,如果此用户在IDOL中存在,IDOL会按照配置中的设置,通过与GroupServer交互,取得这个用户在所有安全类型对应的安全系统中的用户名和对应的组信息,生成一个加密的记录用户所有安全信息的SecurityInfo字符串保存在搜索应用系统中,作为权限查询时能够提供的权

限比对的参考。与文档权限的AUTONOMYMETADATA字段的内容不同,SecurityInfo字符是有有效时间限制的。即用户在登录搜索系统的一定时间之后,SecurityInfo加密信息需要重新生成。这里提到了GroupServer组件,需要重点介绍。

GroupServer组件是实现AutonomyIDOLServer搜索平台权限认证机制必须的重要组件之一,GroupServer集成了LDAP、NT、Notes、Doucmentum等常用系统的权限认证,同时支持通过ODBC连接对应的数据库以及连接Oracle数据库中自定义的用户、组对应表格或视图,实现用户、组的权限认证。在IDOLServer的对应安全认证配置部分,只要配置好需要交互的GroupServer信息,就可以通过发送userread指令给IDOL,IDOL会自动与对应的GroupServer交互,根据GroupServer返回的用户对应的用户组结果,生成SecurityInfo加密串。

IDOL中对于各种安全类型的GroupServer配置会在3-1-10中介绍,GroupServer的具体配置会在3-2-2中介绍。

3-1-8 IDOLServer中的带权限查询的实现

如果了解了3-1-5到3-1-6部分的实现机制,那么IDOLServer的带权限实现也就顺理成章了。一方面每篇文档中包含了AUTONOMYMETADA信息,记录了文档属于的安全类型以及对应安全类型下可被访问的用户名和组信息以及拒绝访问的用户名和组信息,另一方面,通过userread指令,搜索应用系统已经的到了登录用户的SecurityInfo字符串,其中包含用户在每个安全类型中的用户名和组。查询是,通过SecurityType标签的值判断安全类型,从SecurityInfo中对应的安全类型中取出用户名和组信息,同文档中的AutonomyMetadata字段中的用户及组信息进行比对,即可判断出这篇文档能否被该用户访问,从而实现带权限的查询。

3-1-9 用户自定义关键词表和用户自定义过滤词表

自定义关键词

默认的分词结果往往不能满足客户灵活的需要,如果某个词会被分开成几个terms,有些term只是单独的字的话,用户想搜索这个词,往往不能达到满意的搜索效果。被分开的所有term都参与了查询。IDOL为用户自定义的关键词表预留了接口,在IDOL的安装目录/IDOL/Langfiles目录下有一个userdic.txt文件,每行代表一个词或词组,这个词表里的关键词在索引的时候不会再被分开。用户一旦有不想分开的关键词或者词组,只需要向这个文件中添加一行就可以了,不过这需要重新启动IDOL并重新索引数据,因为原来的文章中的对应关键词已经被分开成term了。 自定义过滤词表

搜索是往往会出现类似这样的情况,在某些特定的应用环境中,搜索某个关键字几乎意味着遍历所有文档,这样的关键字应该被过滤,另外某些敏感词汇不希望被作为搜索的关键字,这些词也该被过滤。过滤一个词只需要向IDOL的安装目录/IDOL/Langfiles目录下有一个stoplist.dat文件中添加一行就可以了。添加过滤词不需要重新索引数据,但需要重新启动IDOL,让新的设置生效。

3-1-10 IDOLServer的配置

参考文件:

172.16.2.65\\D:\\Autonomy\\example\\CFG示例\\IDOLServer\\AutonomyIDOLServer(带注释).cfg

上述参考文件是IDOLServer安装完成后的针对重要参数手动添加了注释的配置文件,需要做诸多调整后方能适应项目需求。在服务器65上的安装目录下有一个针对abc搜索系统配置好的AutonomyIDOLServer.cfg,可以将其与参考文件比较了解IDOL的配置方法。配置文件中的参数详细说明可以参见IDOLServer_7.3_Admin.pdf或IDOL在线帮助中Config Params页。

3-1-11 IDOLServer的启动和停止

启动IDOLServer服务:在WINDOWS服务中启动AutonomyDish服务 停止IDOLServer服务:

1、在WINDOWS服务中停止AutonomyDish服务

2、在WINDOWS服务中停止AutonomyIDOLServer服务

3-2 OmniGroupServer

安装文件:

D:\\Autonomy\\software\\OMNIGroupServer_7.3.0.0_WINDOWS.exe

3-2-1 OmniGroupServer的安装

运行OmniGroupServer的安装文件打开类似IDOL安装的图形界面,指定安装目录,选择所需集成的系统,在各系统具体应用配置环节可以使用安装默认值,安装完毕后可以手动修改配置文件,一直下一步到最终确定,GroupServer安装完毕。

建议在选择所需集成系统时将全部系统选上,从而可以获得对所有系统支持的动态链接库,安装完毕后在GroupServer的配置文件中再手动删除无用的系统。

3-2-2 OmniGroupServer的配置

参考文件:

172.16.2.65\\E:\\Autonomy\\OMNIGroupServer\\OMNIGroupServer.cfg

上述参考文件是OmniGroupServer安装后针对abc当前权限系统配置的,以后的应用还需要根据具体项目需求做适当修改。配置文件中的具体参数说明可以查看IAS_Admin_7.3_rev_1.pdf或OmniGroupServer在线帮助中Config Params页。

下面以参考文件的OMNIGroupServer.cfg为示例说明其中的关键配置:

[Default]

//GroupServer启动任务的时间,这里为立即启动,可以设置具体时间,如:20:00,代表晚8点 GroupServerStartTime=now

//GroupServer抓取数据的循环次数,这里为-1,代表无限次 GroupServerCycles=-1

//GroupServer每个抓取周期的循环周期,单位为秒 GroupServerRepeatSecs=86400

//GroupServer是否大小写不敏感,true为不敏感 GroupServerCaseInsensitive=true

//GroupServer接受查询指令队列的最大限度 GroupServerMaxDataStoreQueue=5000

//GroupServer具体抓取任务的设定 [Repositories]

GroupServerDefaultRepositories=AbcRight Number=1

//定义任务AbcRight 0=AbcRight

[AbcRight]

//设定任务需要的动态链接库 GroupServerLibrary=ogs_odbc.dll //连接数据库的设置

ConnectionString=DSN=AllRight;UID=sa;PWD= //连接用户表、选择用户名和组信息的SQL语句

SQLStatement=SELECT UserName,Convert(ntext,RTrim(Right)) as rights FROM dbo.Allrights //指定添加类型为用户组的对应 AddType=USERGROUP

//指定表中代表用户名的列名称 UserColumn=UserName

//指定表中代表组名的列名称 GroupColumn=Right

//将Group的编码格式转换为UTF8 GroupServerOp0=ToUTF8

GroupServerOpApplyTo0=GROUP

GroupServerOpParam0=CHINESESIMPLIFIED

3-2-3 OmniGroupServer的启动和停止

启动OmniGroupServer:在WINDOWS服务中启动OMNIGroupServer服务 停止OmniGroupServer:在WINDOWS服务中停止OMNIGroupServer服务

3-3 ODBCConnector

安装文件:

172.16.2.63\\F:\\autonomy\\software\\ODBCConnector_7.3.7.0_WINDOWS.exe

3-3-1 ODBCConnector的安装

执行ODBCConnector_7.3.7.0_WINDOWS.exe启动安装程序开始画面

License信息确认

指定安装路径

指定安装名称,默认值即可

提示如果有license文件,将其拷贝到安装目录后重新启动安装程序,加载license;如果没有将获得30天的使用权限。license可以在配置文件中替换,直接下一步即可

如果有license信息文件,这里输入的名称要和license文件中一致。推荐在配置文件中修改license信息,这里输入任意名或直接进入下一步

指定ODBCConnector使用的服务端口以及可以查看其状态的终端的IP特性和可以修改其配置的终端的IP特性。这些设置也可以在配置文件中修改。

指定抓取后要索引到的目标IDOL主机的IP地址、索引端口和默认抓取索引到IDOL的数据库名称。这里需要参考目标IDOL的配置,要保持一致。如果IDOL也是默认设置安装,这里可以直接进入下一步

确认先前的安装设置

开始安装

ODBCConnector安装完成

ODBCConnector安装完成

3-3-2 ODBCConnector的配置

2-3-3中简要介绍了ODBCConnector的工作方式,和3层的配置文件。其实从数据的处理逻辑来分析,更好理解ODBCConnector的工作原理。首先,ODBCConnecor通过DSN连接到SQLServer数据库,将数据库表中的内容插入到模板中对应的标签条目中,以文件的形式存储在本地临时文件夹中。然后ImportSlave对临时文件夹中的文件做配置文件中指定的后期处理,将临时文件中的内容做出需要的调整之后,生成idx文件。最后ODBCConnector将idx文件导入到IDOL中。ImportSlave作为一个中间层,是一个非常重要的角色,它能够根据配置,调整数据内容,适应更为灵活的数据需求。同时它也是Autonomy所有数据抓取工具共用的模块,所有抓取工具中关于ImportSlave所作工作的配置是一样的。ImportSlave的工作在配置中以大都以Import开头,对于标签的操作则全部由ImportFieldOp+序号、ImportFieldOpApplyTo+序号、ImportFieldOpParam+序号这3条配置行构成,分别代表操作关键字、操作生效的标签和操作需要的参数。有些操作不需要第三行的配置。ImportSlave的配置在每个任务中必须从序号0开始依次延续。下面重点介绍ImportSlave的一些常用操作,更好理解ImportSlave的配置。 3-3-2-1 ImportSlave常用操作

1、CharsetConvert 描述:

完成将ImportFieldOpApplyTo参数指定的标签的内容做编码转换。特别适用于在IDOL服务器中保持文档名称和文档正文编码的一致性。

通过ImportFieldOpParam指定原编码格式和目标编码格式: ImportFieldOpParam=:

输入原编码格式

输入目标编码格式 示例:

ImportFieldOp0=CharSetConvert

ImportFieldOpApplyTo0=DRECONTENT

ImportFieldOpParam0=CHINESESIMPLIFIED:UTF8

这里将DRECONTENT标签内的文字内容从简体中文编码转到UTF8编码

2、EndAtChars 描述:

将ImportFieldOpApplyTo参数指定标签的内容截止到一个特定的字符导入。按如下格式设置ImportFieldOpParam参数指定如何截止到特定字符: ,0

删除指定字符第一次出现之后的内容。 ,1

删除指定字符最后一次出现之后的内容。. ,2

删除指定字符第一次出现之后连同字符本身的内容。 ,3

删除指定字符最后一次出现之后连同字符本身的内容。 示例:

ImportFieldOp0=EndAtChars ImportFieldOpApplyTo0=Animal

这里如果Animal标签的值为Hippopotamus,ImportFieldOpParam0参数的值决定了删除的内容: ImportFieldOpParam0=\"P\

The Animal标签值变为Hip导入。 ImportFieldOpParam0=\"P\

The Animal标签值变为Hippop导入。 ImportFieldOpParam0=\"P\The Animal标签值变为Hi导入。 ImportFieldOpParam0=\"P\

The Animal标签值变为Hippo导入。

3、StartAtChars 描述:

实现将ImportFieldOpApplyTo参数指定标签值中从指定字符开始之后的内容导入。按下列格式设置ImportFieldOpParam参数指定内容中被忽略的字符。 ,0

参数指定字符首次出现之后的内容(包括指定字符)被导入。 ,1

参数指定字符最后一次出现之后的内容(包括指定字符)被导入。 ,2

参数指定字符首次出现之后的内容(不包括指定字符)被导入。

,3

参数指定字符最后一次出现之后的内容(不包括指定字符)被导入。 示例:

ImportFieldOpApplyTo0=Vitamin ImportFieldOp0=StartAtChars

这里如果Vitamin标签的值为A B1 B2,根据ImportFieldOpParam0参数的不同,标签值中被忽略的内容不同: ImportFieldOpParam0=\"B\

Vitamin标签的值变为B1 B2导入。 ImportFieldOpParam0=\"B\Vitamin标签的值变为B2导入。 ImportFieldOpParam0=\"B\

Vitamin标签的值变为1 B2导入。 ImportFieldOpParam0=\"B\Vitamin标签的值变为2导入。

4、FieldGlue 描述:

实现绑定多个标签或字符串的内容并将其附加到指定标签内容之后。

这跟ImportFieldGlueDestination和ImportFieldGlueSourceCSVs参数很相像,但FieldGlue操作比其它标签操作具有更高的优先级。

用逗号分隔指定的多个标签,Fname前缀区分标签和字符串。 示例:

ImportFieldOp0=FieldGlue

ImportFieldOpApplyTo0=DREREFERENCE

ImportFieldOpParam0=FnameDREREFERENCE, ,FnameTITLE, ,\"Confidential\" 这里如果TITLE标签的值为Sales Report,字符串Sales Report Confidential被附加到DREREFERENCE标签原有内容之后。相邻签值之间有一个空格。

5、StripChars 描述:

从ImportFieldOpApplyTo参数指定标签内容中删除一个或多个特定的字符。 通过ImportFieldOpParam参数指定要删除的字符。字符必须用引号括起。 示例:

ImportFieldOpApplyTo0=Name ImportFieldOp0=StripChars ImportFieldOpParam0=\"!#\"

这里如果Name标签的值为#John Smith!,则#和!字符被删除,Name标签的值变为John Smith导入。

6、StripHTML 描述:

删除ImportFieldOpApplyTo参数指定标签内容中的HTML标签。

如果想将ImportFieldOpApplyTo参数指定标签内容中的HTML通配符that转化为对应的字符串,则将ImportFieldOpParam参数设置为HTMLConvertEntities。 示例:

ImportFieldOpApplyTo0=Name ImportFieldOp0=StripHTML

这里如果Name标签的值为John Smith,则HTML标签( and )被忽略,Name标签的值变为JohnSmith导入。

ImportFieldOpApplyTo0=Name ImportFieldOp0=StripHTML

ImportFieldOpParam0=HTMLConvertEntities

这里如果Name标签的值为John Smith,HTML通配符被转换,HTML标签被忽略,Name标签的值变为John Smith导入。

7、ImportCantHaveCheck 描述

通过输入位掩码指定ImportCantHaveCSVs参数指定的字符串如何使用。可以将下列数字中适当的值做叠加: 检查指定的标签:0

如果设置为0,Import Module检查ImportCantHaveFieldCSVs 参数指定的标签中是否包含ImportCantHaveCSVs参数指定的字符串。如果一篇文档的任意指定标签包含任意指定的字符串,则文档不被处理。 DREREFERENCE: 1 如果设置为1,Import Module检查文档的DREREFERENCE标签中是否包含任何ImportCantHaveCSVs参数指定的字符串。如果有,则文档不被处理。 大小写敏感: 64

可以在原有ImportCantHaveCheck参数值的基础上加上64,使得对ImportCantHaveCSVS参数指定字符串的检查大小写敏感。 注:

在标签操作执行之后,Import Module进行导入过程的最后步骤,CantHave和MustHave检查。就是说如果标签的值在导入过程中被修改了,Import Module参照ImportCantHaveCSVs参数设置的字符串检查修改后的值。

CantHave参数的优先级高于MustHave参数。就是说如果相同的字符串在ImportMustHaveCSVs和ImportCantHaveCSVs参数中都有设置,Import Module在文档中找到此字符串,那么这篇文档将不被处理。 示例

ImportCantHaveCheck=64

ImportCantHaveFieldCSVs=DocType,Description ImportCantHaveCSVs=*pdf*

这里Import Module检查文档的DocType和Description标签是否包含字符串pdf(大小写敏感)。如果一篇文档的这两个标签中的任意一个包含pdf,则这篇文档不被处理。

注:ImportSlave能做的事情还很多,根据8相关文档提供的参看目录查看更详细的配置信息 3-3-2-2 abcODBCConnector配置实例

参考文件:

172.16.2.63\\E:\\Autonomy\\ODBCConnector4\\ODBCConnector4.cfg

上述参考文件是抓取abc所内部OA系统数据配置的ODBCConnector,其中包含3个配置文件:主配置文件(ODBCConnector.cfg),任务配置文件以及模版文件,下面将以它为例说明关键参数的用法:

主配置文件(ODBCConnector4.cfg):

//license信息,需要替换时将整个部分替换 [License]

// Do not modify!

Holder=companyname

Key=Y57030330X48391462046426386041

[SERVICE] //ACI端口设定

SERVICEPORT=40030

//通过http命令控制OracleConnector服务的终端的IP特征 SERVICECONTROLCLIENTS=*.*.*.*

//通过http命令查看OracleConnector服务状态的终端的IP特征 SERVICESTATUSCLIENTS=*.*.*.*

[Default]

// Dre information //指定索引端口

//DREIndexPort=9001

//指定ACI端口,指定ACI端口,ODBCConnector会自动找到索引端口 DREACIPort=9000

//索引的目标服务器的IP DreHost=172.16.2.65

// The DRE database that the information is to be indexed into //指定保存到IDOL对应的数据库名 Database=ODBC

//指定抓取开始时间,默认为空,立即开始 FetchStartTime=20:00

//抓取间隔,默认为86400,单位为秒 FetchRepeatInterval=86400

//抓取周期,默认为-1,即无限循环 FetchCycles=-1

// 索引时是否生成自动摘要,默认为false ImportSummary=FALSE

//设置满足什么样条件的文件才索引 ImportMinLength=0

ImportMinLengthWords=0 ImportMaxLength=100000

ImportMaxLengthWords=100000

// 设置是否将大文件拆分为小文件

ImportBreaking=FALSE

ImportRecursiveDirectoryImporting=TRUE

//默认安装完,这些组件路径设置的参数都是相对的,为避免出错,最好改为绝对的 ImportDefaultSlaveDirectory=filters

ImportCharsetConvTablesDirectory=convtables ImportTempDir=importtemp

ImportPath=E:\\Autonomy\\ODBCConnector4 IndexPath=E:\\Autonomy\\ODBCConnector4

//生成idx单个文件包含的文档数 BatchSize=100

//导入方式Import和Index两种,差别在于前者先做完左右抓取工作,一并导入,后者没做完一个batchsize指定的文档数,就导入一次 BatchProcess=INDEX

//存储抓取的表单结构,实现表单的数据同步,即增量抓取 StoreStructure=true

StructureReferenceDeleteMap=

//这个参数仅对按文档路径抓取,使用idx模板的任务有效,设置为true,附件中的信息和原有数据表中所有列的信息全部保存在文档的idx中

//反之,附件中的信息会覆盖原有数据表中的信息,作为独立的文档生成idx,原有数据表中所有列的信息会忽略 ImportInheritStubIdxFields=TRUE //是否抓取页眉页脚

ImportHeaderFooter=false

//是独立抓取文档中嵌入的图表 ImportEmbedded=false

//是否保留给出的文档路径为空的数据 ImportEmptyFiles=false

//为每篇文档添加固定标签LanguageType,值为chineseUTF8,这和IDOL中配置的语言标签一直,代表抓取的文档对应chineseUTF8语言类型

FixedFieldName0=DRELANGUAGETYPE FixedFieldValue0=chineseUTF8

//定义具体抓取任务 [Jobs] 0=OA

[OA]

//设置数据库链接

Connection=DSN=OA;UID=KM_User_Read;PWD= //设置具体任务配置文件的路径

Parser=E:\\Autonom\\ODBCConnector4\\cgi\\OA.cfg

//设置索引到IDOL的库名,在这里设置的参数可以覆盖上面[Default]中的参数值 Database=OA

/*为每篇文档添加固定标签SECURITYTYPE,值为AbcRight,SECURITYTYPE的标签值是IDOL用来识别文档安全类型的,其值应与文档对应的安全类型名一致。*/ FixedFieldName1=SECURITYTYPE FixedFieldValue1=AbcRight

//添加固定标签AUTONOMYMETADATA,值为空,下面将通过函数将权限信息写入此标签 FixedFieldName2=AUTONOMYMETADATA FixedFieldValue2=” ”

//添加固定标签FetchSource,值为OA,用于程序判断数据来源 FixedFieldName3=FetchSource FixedFieldValue3=OA

//配置按照抓取日期生成DREDATE标签 ImportExtractDateFrom0=8

ImportExtractDateToField0=DREDATE

ImportExtractDateToFormat0=EPOCHSECONDS

//映射数据库LastSave_DTM字段到DREDATE标签 ImportFieldOp0=FieldGlue

ImportFieldOpApplyTo0=DREDATE

ImportFieldOpParam0=FnameLastSave_DTM

//替换CanReadPersonID标签中的“;”为“,” ImportFieldOp1=ReplaceMultiple

ImportFieldOpApplyTo1=CanReadPersonID ImportFieldOpParam1=;;,

//将CanReadPersonID标签的值转换为大写字母 ImportFieldOp2=ToUpper

ImportFieldOpApplyTo2=CanReadPersonID

//按照格式将CanReadPersonID的值和一些固定字符串拼成文档的权限信息写到AUTONOMYMETADATA标签 ImportFieldOp3=FieldGlue

ImportFieldOpApplyTo3=AUTONOMYMETADATA

ImportFieldOpParam3=”0:U:”,FnameCanReadPersonID,”:G:GOA:NU::NG:”

//加密AUTONOMYMETADATA标签的值 ImportFieldOp4=ENCRYPTSECURITYFIELD

ImportFieldOpApplyTo4=AUTONOMYMETADATA

OA任务的配置文件(OA.cfg),需要手工创建: [Configuration]

//声明数据库的原始编码

ORIGINALENCODING=CHINESESIMPLIFIED // Tables

//任务涉及的表 NumTables=1

TableName0=ExampleTable1

//任务数据类型显示在log中的信息前缀 DataType=OA

//任务文件夹,存放任务的临时文件 BaseDirectory=OA

//指定存放附件路径的表中的列名 BlobField=FILECONTENT //文档按照doc方式处理

BlobExtensionFromField=false BlobExtension=.doc

//通过post请求传送信息 PostProcess=true

// Generate one file instead of a file for each record. SingleFile=false

//带附件表项的抓取这个参数值指定为.idx,否则为指定为.htm Extension=.idx

//指定主表(支持表关联,但表关联更多在数据库中用视图实现,避免复杂的配置) MainTable=ExampleTable1 // Tables

//配置ExampleTable1表 [ExampleTable1]

// The name of the table in the database. //目标表数据库中的实际名称

Target=dbo.View_KM_OA_FileSearch_2

// Uniquely identify a row. //主键列个数,一般为1 PrimaryKeyFields=1 //主键列名

PrimaryKeyName0=FilesId

//主键列的值是否是纯数字型,是则指定为Unquoted,否则指为quoted PrimaryKeyType0=quoted

//指定任务模板文件,其类型取决于Extension参数值,idx类型对应Extension参数值为.idx,tmpl类型对应Extension参数值为.htm

Template=E:\\Autonomy\\ODBCConnector4\\cgi\\OA.idx

OA任务的模板文件(OA.idx),需要手工创建:

//整个模板就是idx中标签和数据库表中列的对应关系,之间的值为标签名,否则当成字符串的值处理 #DREREFERENCE OA_ #DRETITLE

#DREFIELD ACTIVESN=\"\" #DREFIELD FromNO=\"\" #DREFIELD FileLevel=\"\"

#DREFIELD ChoiceLeader=\"\" #DREFIELD FileFrom=\"\" #DREFIELD ChoiceDeal=\"\" #DREFIELD ChoiceRead=\"\" #DREFIELD WillDo=\"\"

#DREFIELD ReadPerson=\"\" #DREFIELD LeaderDeal=\"\" #DREFIELD DealResult=\"\" #DREFIELD Fname=\"\"

#DREFIELD CanReadPersonID=\"\" #DREFIELD COMBINEID=\"\" #DRECONTENT #DREENDDOC

补充:TMPL类型模板文件与idx类型不同,IMAGE任务是这个类型的模板,它不抓取附件内容,以IMAGE任务的模板为例,说明TMPL类型任务模板

//其实TMPL模板依然是idx文件中的标签和数据库表列之间的对应关系,不同的仅在于它先将文件保存成htm格式,再被ImportSlave处理生成idx文件

<!--Doc_Title-->

\"> \"> \"> \">

3-3-3 ODBCConnector的启动和停止

启动ODBCConnector:运行安装目录ODBCConnector.exe或在服务中启动 停止ODBCConnector:关闭运行窗口或者在任务管理器中关掉Connector进程

3-4 HTTPConnector

安装文件:

172.16.2.63\\F:\\autonomy\\software\\HTTPConnector_7.3.8.0_WINDOWS.exe

3-4-1 HTTPConnector的安装

执行HTTPConnector_7.3.8.0_WINDOWS.exe,安装过程与ODBCConnector类似,按默认设置即可。所有配置都可以在完成后安装目录的HTTPConnector.cfg中修改。

3-4-2 HTTPConnector的配置

2-3-4中简单介绍了HTTPConnector的工作方式。其实配置HTTPConnector的过程主要分为两步:首先分析网站站点结构,找出规则确定哪些页面需要抓取,哪些页面是临时页面需要跳过,如此可以通过设置网页url链接特征、网页发布时间等限定条件筛选符合条件的数据。其次分析抓取网页的格式,根据其html编码确定哪些标签包含的是标题,哪些是正文等,从而将这些信息抽取出来生成索引文件。

下面以中华网军事频道的抓取为例说明其中的关键参数用法:

[DEFAULT]

//指定IDOL的服务器地址、索引端口和ACI查询端口 DREHOST=127.0.0.1 INDEXPORT=9001 ACIPORT=9000 //设置要索引的库名

DATABASE=CompetiveIntelligence

//设置Connector可以使用的socket总数 NSOCKETS=16

//设置connector的循环间隔,循环次数,抓取启动时间 SPIDERREPEATSECS=86400 SPIDERCYCLES=-1

SPIDERSTARTTIME=20:00

//设置一次抓取所用的时间,页面总数 SITEDURATION=43200 MAXPAGES=2000

//抓取文档链接

IMPORTSTRIPLINKS=ON //跟踪页面转发

FOLLOWREDIRECT=TRUE //只抓本站点的数据 STAYONSITE=TRUE //设置页面的大小限制 MINPAGESIZE=100 MAXPAGESIZE=163840

//设置抓取页面的发布时间限制 AFTERDATE=-1 BEFOREDATE=3

//设置抓取后生成索引文件的处理方式 BATCHPROCESS=IMPORT BATCHSIZE=200

//按照DREREFERENCE排重 INDEXMODE=REFERENCE //是否跨服务器索引

INDEXOVERSOCKET=on //是否保留抓取站点的结构 STORESITESTRUCTURE=on //对大网页的分段处理 IMPORTBREAKING=ON

IMPORTBREAKINGMINPARAGRAPHWORDS=300 IMPORTBREAKINGMAXPARAGRAPHWORDS=500 IMPORTBREAKINGMINDOCWORDS=500 IMPORTMINLENGTHWORDS=10 IMPORTMINLENGTH=100

//设置Connector的字段处理和转码目录

IMPORTDEFAULTSLAVEDIRECTORY=D:\\Autonomy\\HTTPConnector\\filters

IMPORTCHARSETCONVTABLESDIRECTORY=D:\\Autonomy\\HTTPConnector\\convtables //设置Connector备份生成的索引文件 ImportCopyIDXToFlags=2

ImportCopyIDXTo=D:\\Autonomy\\idx //设置Connector一次只做一个任务 ActiveSpiderJobs=1

//设置具体任务 [SPIDER]

IMPORTPATH=D:\\Autonomy\\HTTPConnector INDEXPATH=D:\\Autonomy\\HTTPConnector NUMBER=1 0=CHINA

[CHINA]

//所要抓取网站的起始链接

URL=http://military.china.com/zh_cn/ //临时文件存放目录 DIRECTORY=CHINA LOG FILE=CHINA.log

//从当前链接开始分析3层页面 DEPTH=3

MAXPAGES=5000 PAGEDELAY=0 //页面大小限定

MAXPAGESIZE=10240000 MINPAGESIZE=1 //页面链接超时设置 PAGETIMEOUT=20 //页面包含链接总数限定 MAXLINKSPERPAGE=2000

//时间限定,根据url链接匹配时间 DATECHECK=1

DATEFORMATS=YYYYMMDD //设置url链接必须包含字符串 MUSTHAVECHECK=1

MUSTHAVECSVS=*/zh_cn/top01/*.html*,*/zh_cn/important/*.html*,*/zh_cn/news/*.html*,*/zh_cn/news2/*.html* BATCHSIZE=50

//根据页面html编码转换数据为UTF8编码格式 IMPORTALWAYSUSEHTMLENCODING=true //设置最多线程数

MAXSPIDERTHREADS=100 //设置DREDATE字段映射

IMPORTEXTRACTDATEFROM=16

IMPORTEXTRACTDATEFROMFIELD=DREREFERENCE IMPORTEXTRACTDATETOFIELD=DREDATE

IMPORTEXTRACTDATEFORMATCSVS=YYYYMMDD IMPORTEXTRACTDATETOFORMAT=EPOCHSECONDS IMPORTEXTRACTLENGTHTOFIELD=FILELENGTH //设置正文起始和结束html标签

HTMLIMPORTSTARTDEFCSVS=\"

\" HTMLIMPORTENDDEFCSVS=
//设置临时路径

IMPORTTEMPDIR=./ //不生成自动摘要

IMPORTSUMMARY=off //设置语言标签

FIXEDFIELDNAME0=DRELANGUAGETYPE

FIXEDFIELDVALUE0=ChineseUTF8 //设置固定标签

FIXEDFIELDNAME1=SITENAME

FIXEDFIELDVALUE1=military.china.com FIXEDFIELDNAME2=FetchSource

FIXEDFIELDVALUE2=CompetiveIntelligence //设置标题起始和结束html标签 FIELDNAME0=DRETITLE

FIELDSTART0=

FIELDSTOP0=
//设置索引库名

DATABASE=CompetiveIntelligence IMPORTMINLENGTHWORDS=0

//设置url链接中包含哪些字符串不做处理 CANTHAVECHECK=1

CANTHAVECSVS=*index.html*

3-4-3 HTTPConnector的启动和停止

启动HTTPConnector:运行安装目录HTTPConnector.exe或在服务中启动 停止HTTPConnector:关闭运行窗口或者在任务管理器中关掉Connector进程

4数据备份及数据恢复

服务器整机备份及恢复: 备份:

在每个备份周期,将IDOLServer的安装目录拷贝到备份目录 恢复:

停止当前的IDOLServer服务,将备份目录中的IDOLServer目录还原,重新启动IDOLServer服务

IDOL数据idx备份及恢复: 备份:

在地址栏输入http指令,如:

http://localhost:9001/DREEXPORTIDX?filename=E:\\Autonomy\\idx\\backall&compress=true&databasematch=Achives&batchsize=5000

指令中包含4个参数

filename:导出的idx文件的全路径,无需写.idx后缀,因为IDOL会将idx文件分割,以参数中的文件名+序号+.idx后缀命名

compress:是否压缩导出的idx

databasematch:导出指定数据库中的数据

batchsize:单个idx文件包含的文档数,默认为100000

该语句将Achives库中的数据导出存储在E:\\Autonomy\\idx目录中,名称为backall开头的idx文件列表中,每个文件包含5000篇文档,压缩idx文件

恢复:

停止当前的IDOLServer服务,将备份目录中的IDOLServer目录还原,重新启动IDOLServer服务 在地址栏输入http指令,如:http://DREADD?E:\\Autonomy\\idx\\backall-0.idx 该语句实现将E:\\Autonomy\\idx\\backall-0.idx中包含的文档索引到IDOL中

5服务状态监控

向各个组件所在机器的ACI端口发送http指令,a=getstatus,如果能争取返回xml结果,即代表组件工作正常 各个组件安装的机器信息及ACI端口请查阅相关章节

6各个组件的服务访问限制策略

Autonomy几乎所有的产品在配置文件中都对各种级别的操作做连接终端IP特性的限制(请查阅各个组件配置章节),可以通过对不同的组件实现IP结合控制类型做具体的设置,使整个搜索系统更加稳定、安全。

7 开发相关API

辅助指令

1、IDOL帮助

命令:http://localhost:9000/a=help 2、当前IDOL状态:

命令:http://localhost:9010/a=getstatus&format=html 效果:

3、查看活动日志

命令:http://localhost:9000/a=grl 效果:

查询指令:

查询命令:a=query

参数 text(必要) databasematch start maxresults mindate maxdate totalresults predict print printfields querysummary highlight sentences summary sort minscore synonym 查询关键字 数据库选择 返回结果在所有结果中的起始序号(用于翻页) 返回结果在所有结果中的结束序号(用于翻页) 限制查询的起始日期(格式:DD/MM/YYYY) 限制查询的结束日期(格式:DD/MM/YYYY) =true 返回结果总数 默认false =false 与totalresults=true配合使用 返回各个数据库结果数 =all 结果中显示所有标签域 =逗号隔开的标签名序列 结果中返回对应的标签域 =true 显示推荐搜索词 =terms,summaryterms标题和摘要中搜索词term高亮显示 =n 动态摘要的句数 =context 根据查询关键词生成动态摘要 =date 按日期排序 默认=relevance 按相关度排序 =n 返回相关度高于n%的结果 =true 执行同义词查询 描述 无 无 无 无 无 无 n n 中增加了所有的数据标签 中增加了指定的数据标签 terms前后出现 无 无 无 无 无 与参数关联标签 text参数高级用法(字母均需要大写)

X+AND+y X+OR+y NOTx “x” x:A

简单查询效果:

x关键字y关键字逻辑与 x关键字y关键字逻辑或 x关键字逻辑非 精确匹配x关键字 限制x关键字在A标签内

添加totalresults=true效果:

添加predict=false效果:

添加printfields参数或者print=all效果:

添加querysummary=true效果:

相关文章推荐指令:a=suggest

必配参数id=文章id,其余参数可参照query指令,效果一直

测试语句http://localhost:9000/a=suggest&id=49470&printfields=dretitle效果:

按标签统计结果:

命令:getquerytagvalues

参数:text 查询词,fieldname 统计标签名,documentcount 结果标签计数

http://localhost:9000/a=getquerytagvalues&text=*&fieldname=doc_format&DocumentCount=true 执行结果:

分类相关:

实现分类的功能,首先要创建分类名、训练分类,即为分类制定标准、Build分类,即将标准在新分类中实施,这三个步骤完成后才能进行分类查询。如下分别介绍了这3个步骤,并在之后介绍分类查询 分类创建指令:a=categorycreate 参数:category=分类名

http://localhost:9000/a=getegorycreate&category=运营 执行效果:

分类训练指令:a=categorysettraining 参数: category(必配参数) docid(按文档训练) =categoryid 指定分类对应的id 用逗号分开的文档id号序列 training 用逗号分开的训练词序列 http://localhost:9000/a=categorysettraining&docid=1942,2528 执行效果:

Build分类指令:a=categorybuild

参数:category=分类id(必配参数)

http://localhost:9000/a=categorybuild&category=69175324831866737 执行效果:

分类查询指令:a=categoryquery 参数

category(必配参数) totalresults params values =categoryid 指定分类对应的id =true 返回分类的结果数 用逗号分开的query查询语句的参数序列 用逗号分开的query查询语句的参数值序列

http://localhost:9000/action=categoryquery&category=69175324831866737¶ms=start,maxresults,summary,characters,sentences,combine,print&values=1,10,context,300,4,simple,all&totalresults=true 执行分类查询效果:

补:获得当前系统分类树

获取分类信息指令:a=categorygethierdetails

参数:expand=true,返回所有层级的节点信息,默认为false,返回根一级的节点信息 http://localhost:9000/a=categorygethierdetails 执行效果:

返回指定分类的信息指令:a=categorygetdetails 参数:category=分类id(必配参数)

http://localhost:9000/a=categorygetdetails&category=69175324831866737 执行效果:

8 系统验证

在所有组件部署完成、正常启动后,即可开始进行集成测试,建议分几步从几方面进行: 一、IDOLServer流程测试

1、向IDOL中添加用户,并通过userread指令取得securityinfo加密串,可以通过autonomy的工具检测加密串是否完整,从而检验出各个GroupServer是否正常工作、IDOL与GroupServer的协同是否正常

2、通过观察返回结果中某篇文档各个字段的信息,检验OracleConncetor抓取的字段是否满足应用需求 3、发送各种功能查询指令,检查返回的xml结果是否是预期效果,从而判断IDOLServer是否正常配置

4、通过检查将SecurityInfo做escape,然后将其附加在查询语句SecurityInfo参数值后,能否将带权限的文档返回,判断文档的安全类型、AUTONOMYMETADATA是否正常与IDOL中的安全配置匹配生效。简单的看,只要附加安全串的查询返回的文档个数多余不附加的情况,应该就是生效了。

通过上述4步,即可将搜索的全部流程走通,如果IDOLServer流程测试不通过,以下的测试也没有意义。

二、数据采集流程测试

1、将各个GroupServer的抓取周期按照预定的抓取周期设置,尽量考虑抓取数据量的可能极限做测试。在每个周期结束后,通过发送语句测试GroupServer的更新是否生效。

2、将OracleConnector的抓取周期按照预定的抓取周期设置,尽量考虑抓取数据量可能极限做测试。在每个周期结束后,通过向IDOL发送指令判断新数据是否已经录入。

上述2步实际上也是一种压力测试,它主要反映目前的数据采集流程能否跟进各种数据来源的更新速度。如果上述2步中任何一步出现问题,都要考虑将任务再次细分,将抓取压力分担到其它采集进程,这样才能进一步缩短抓取周期。

9 相关文档

因篇幅问题不能全部显示,请点此查看更多更全内容

Top