当前位置:文档之家› 检索工具使用介绍

检索工具使用介绍

使用介绍:结构说明:框架分为5个部分:1.search package:TRS检索功能类包。

a)connection:TRS服务器数据库连接关闭管理器。

(1)可通过调用者传递参数来进行服务器的连接,也可通过默认读取配置文件的方式连接服务器。

(2)可支持新集群配置模式。

b)domain:TRS检索服务对象域。

(1)Page:翻页对象实体。

(2)SearchRequest:检索请求对象实体。

(3)SearchResponse:检索结果对象实体。

(4)KeywordMark:标红摘要对象实体。

c)search:TRS检索服务管理包(1)BuildResultPage:结果集信息构建器。

(2)SearchCore:核心检索类。

(3)SearchManager:检索接口。

(4)SearchManagerImpl:检索请求接入类。

2.ckmUtils:CKM服务功能类包。

a)connection:CKM服务器连接管理器。

(1)可通过调用者传递参数来进行服务器的连接,也可通过默认读取配置文件的方式连接服务器。

b)ckmManager:CKM针对检索功能相关的常用工具。

(1)CkmManager:CKM涉及检索周边功能,纠错词,拼音提示,相关词/主题词/关键词的抽取以及PLO自然语句分词处理功能。

(2)CkmPloSeg:PLO自然语句分词处理器。

3.condition:检索表达式整合与生成管理器。

a)ConditionGenerator:检索表达式管理器。

(1)包含对检索表达式的生成与集成。

针对文本形式、时间日期形式和数据类型进行标准检索表达式的生成功能。

(2)可支持时间日期表达式的优化处理。

(3)可支持模糊检索表达式生成优化处理。

(4)集成PLO自然语句分词功能。

4.tools:管理工具包:a)Config:配置文件读取,加载配置项功能工具类。

b)ReDateUtil:时间信息处理工具类。

c)SearchUtils:检索相关工具类。

d)StringHtmlFilter:字符串Html字符过滤器。

e)SubInfoGetter:摘要标红的生成与优化处理器。

5.配置文件properties:a)searchTools.properties:配置TRS检索基本配置项。

(1)配置TRS服务器连接的相关参数。

(2)database:TRS服务器检索使用的表名或视图名称。

(3)subInfoColumn:检索中所需的细览字段。

(4)subInfoLength:检索中细缆内容需要获取摘要长度信息。

默认120.(5)summaryColumn:检索中所需的概览字段。

(6)redflagColumn:检索中需要额外标红的概览字段。

(7)lEstimateUnit:快速估算检索中所使用的检索逻辑段记录数和至少返回的条目数。

(8)lEstimateStops:快速估算检索中至少返回的条目数(9)iMaxCount:分类统计检索稿件最大数阀值。

b)ckmConfig.properties:(1)CKM服务器连接所需参数。

(2)ckmPloSegFlag:CKM PLO分词处理开关。

默认false。

(3)ckmPloSegCfg:CKM PLO分词词性配置。

默认为CKM所需配置。

(4)ckmPloSegLength:CKM PLO分词生成最大词数。

默认为8个。

重要类说明(具体含义可见API):1.SearchRequest:检索服务请求对象域。

检索请求必需的参数信息集合。

其中参数可通过用户进行set赋值,如未进行赋值则通过读取配置文件的配置项进行赋值操作。

a)pageNo:当前页。

默认1.b)pageSize:单页最大条目。

默认30.c)iOptionMask:检索连接设置掩码。

包含同义词、反义词、上位词、全/半角扩展。

默认为自动进行全/半角字符扩展检索(TRSConstant.TCM_KAXECX)。

该掩码用于快速估算搜索、普通检索、分类统计。

d)iSearchOption:检索选项辅助掩码。

包含按字、同一排序、LIFO备选排序、缺省正文字段的与、或、非、异或关系。

默认为备选排序为后进先出(TCM_LIFOSPARE)。

该掩码用于快速估算搜索、普通检索、分类统计。

e)database:数据库表名/视图名。

默认读取配置文件项。

f)whereClause:检索条件表达式。

g)sortClause:排序方式。

h)dateColumnList:需要特殊进行时间格式转换的时间字段。

List<String[]>类型,string[0]时间字段,string[1]时间格式。

i)subInfoColumn:摘要字段。

检索后对该字段进行摘要截取,过滤html特殊字符,检索词标红操作。

默认读取配置文件项。

j)subInfoLength:摘要长度。

默认120.k)summaryColumn:概览字段。

默认读取配置文件项。

系统会将三个字段信息进行处理,做为readOption结果集读取设置。

l)redflagColumn:需要标红的概览字段。

m)lEstimateUnit:快速估算检索的单个逻辑段记录数。

默认读取配置文件项,如为空,则赋值100000。

n)lEstimateStops:快速估算检索中至少返回的记录数。

默认读取配置文件项,如为空,则赋值200.o)classResultColumnName:分类统计中待统计的列名。

p)classResultColumnValue:分类统计中需要统计的值。

值间用\r做连接。

q)MaxCount:分类统计中,进行分类的数量条目依据。

默认读取配置文件项,如为空,则赋值0,无限制。

r)bMixEnable:分类统计中混合排序与独立排序设置。

默认为在每个视图或物理数据内做独立排序(false)。

s)iOption:分类统计参数设置。

默认为筛选类别名按生序排序,否则按降序排序(TRSConstant.CLASSASCENT)。

2.searchManager:检索服务接口。

3.searchManagerImpl:检索服务请求类。

a)executeTRSResultClass:分类统计检索。

方法多态。

b)executeTRSSearch:常规检索。

方法多态。

c)executeTRSQuickSearch:快速估算检索。

方法多态。

4.ConditionGenerator:检索条件表达式生成整合处理器:a)createNumConditon:生成标准数字类型检索表达式方法。

方法多态。

b)createTextCondition:生成简单标准文本类型检索表达式方法。

方法多态。

c)createAdvTextCondition:生成标准文本类型检索表达式方法。

方法多态。

d)createDateCondition:生成简单标准日期类型检索表达式方法。

方法多态。

e)createAdvDateCondition:生成标准日期类型检索表达式方法。

方法多态。

5.CkmManager:CKM针对检索周边功能。

a)getRealWords:处理自然语句分词。

方法多态。

b)ckmCollationText:政治常识校验。

方法多态。

c)ckmPySearch:拼音提示,拼音/短语纠错提示。

方法多态。

d)ckmAbstract:关键词内容摘要提取。

方法多态。

e)ckmKeySearch:生成相关提示词。

方法多态。

f)ckmPOLSearch:通过词性抽取人物、机构、地点主题词。

经常使用的几个常用函数举例:(具体使用方法:参见公司svn下载web-search-demo)1.TRS检索a.服务器连接://有参数的TRS服务器连接初始化。

SimpleConnectionManagerImpl scm = newSimpleConnectionManagerImpl(host, port, username, password,strOptions);//默认读写配置文件的TRS服务器连接初始化。

SimpleConnectionManagerImpl scm = newSimpleConnectionManagerImpl();b.初始化检索接口://初始化检索接口SearchManagerImpl smimpl = new SearchManagerImpl();c.快速估算检索:sre = smimpl.executeTRSQuickSelect(sr, redSearchWord, scm);d.分类统计检索:sre = smimpl.executeTRSResultClass(sr, scm);e.常规检索:sre = smimpl.executeTRSSearch(sr, redSearchWord, scm);2.CKM纠错与相关提示:1.CKM连接a.服务器连接://有参数的CKM服务器初始化连接:CkmConnectionManager ckmConn = newCkmConnectionManager(ckmUrl, ckmName, ckmPassword);//默认读取配置文件的CKM服务器初始化连接CkmConnectionManager ckmConn = new CkmConnectionManager();b.CKM接口初始化:CkmManager ckmManager = new CkmManager();c. 短语相关提示://检索词作为参数:list = ckmManager.ckmKeySearch(searchword.trim());//Soap、检索词、模板名称做为参数:list = ckmManager.ckmKeySearch(ckmSoapClient, searchword.trim(), modelName);d. 拼音提示、词语纠错://检索词作为参数:list = ckmManager.ckmPySearch(searchword.trim());//Soap、检索词、模板名称做为参数:list = ckmManager.ckmPySearch(ckmSoapClient, searchword.trim(), modelName);3.检索表达式生成://初始化表达式处理器:ConditionGenerator conGetor = new ConditionGenerator();//时间表达式处理:表达式生成且进行优化String a = conGetor.createAdvDateCondition("doc_writedate,sys_lastmodified", "2001.10.21", "2011.12.02", SearchUtils.EXP_AND, true);结果:(doc_writedate_DAY=between['2001.10.21','2001.10.31'] ordoc_writedate_DAY=between['2011.12.1','2011.12.2'] ordoc_writedate_MONTH=between['200111','200112'] ordoc_writedate_MONTH=between['201101','201111'] ordoc_writedate_YEAR=between['2002','2010'])//时间表达式处理:表达式生成且进行优化String m = conGetor.createAdvDateCondition("doc_writedate,sys_lastmodified", SearchUtils.COLUMN_EQUAL, -997, SearchUtils.EXP_AND, true);结果:(doc_writedate_DAY=between['2009.4.3','2009.4.30'] ordoc_writedate_DAY=between['2011.12.1','2011.12.26'] ordoc_writedate_MONTH=between['200905','200912'] ordoc_writedate_MONTH=between['201101','201111'] ordoc_writedate_YEAR='2010') and(sys_lastmodified_DAY=between['2009.4.3','2009.4.30'] orsys_lastmodified_DAY=between['2011.12.1','2011.12.26'] orsys_lastmodified_MONTH=between['200905','200912'] orsys_lastmodified_MONTH=between['201101','201111'] orsys_lastmodified_YEAR='2010')//时间表达式处理:表达式生成且不进行优化String e = conGetor.createAdvDateCondition("DOC_WRITEDATE,sys_lastmodified", "2001/10/21", "2011/12/02", SearchUtils.EXP_AND, false);结果:DOC_WRITEDATE = between['2001/10/21','2011/12/02'] andsys_lastmodified = between['2001/10/21','2011/12/02']//简单时间表达式处理:String b = conGetor.createDateCondition("doc_writedate", -40);结果:doc_writedate=between['2011-11-16','2011-12-26']String c = conGetor.createDateCondition("doc_writedate","2001-01-26", "");结果:doc_writedate = between['2001-01-26','2011-12-26']//数字表达式处理:String numStr = gg.createNumCondition("DOC_LENGTH",SearchUtils.COLUMN_EQUAL, "10,300", SearchUtils.EXP_AND);结果:DOC_LENGTH = between['10','300']String numStr = gg.createNumCondition("DOC_LENGTH, AV_LENGTH", SearchUtils.COLUMN_EQUAL, "10,300", SearchUtils.EXP_AND);结果:DOC_LENGTH = between['10','300'] and AV_LENGTH = between['10','300']//文本表达式处理:生成表达式且为模糊检索:String textStr1 = gg.createAdvTextCondition("DOC_CONTENT,SYS_TOPIC", SearchUtils.COLUMN_OREQUAL, "北京上海", SearchUtils.EXP_AND, true, true, false);结果:(DOC_CONTENT,SYS_TOPIC) += like('北京') AND (DOC_CONTENT,SYS_TOPIC) += like('上海')//简单表达式处理:String textStr = gg.createTextCondition("DOC_CONTENT", SearchUtils.COLUMN_EQUAL, "北京上海", SearchUtils.EXP_AND);结果:DOC_CONTENT = ('北京' AND '上海')。

相关主题