欢迎来到天天文库
浏览记录
ID:21665187
大小:70.50 KB
页数:8页
时间:2018-10-23
《增强 websphere service registry and repository 的搜索功能》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、增强WebSphereServiceRegistryandRepository的搜索功能 引言 IBMS)上构建XML数据库引擎,以便能够方便地管理接近原始XML形式的XML文件。ServiceRegistry允许您描述XML文档中各部分之间的逻辑关系(例如,icrosoft™文档,如Word和Excel生成的文档 PDFBox,用于处理PDF文档 图2显示了一般索引流程: 图2.索引流程1234567下一页....,。 同一逻辑方案同时应用于基于RAM和基于Spring的实现。在第二种情况下,文档转换器和索引引擎组件及其子组件通过描述符在外部进行定义,然
2、后使用Spring进行实例化。 极快的Lucene内存索引 Lucene内存方法将基于RAM的存储与非常快的文档分析器组合在一起,方便了针对高度优化的实现进行自定义。基本上,基于RAM的存储意味着索引的文件表示形式保存在RAM中,因此无法在不同的应用程序之间进行共享。这些索引仍然是专有的,因此不需要详细描述访问控制策略。高度优化的实现降低了Lucene的自定义灵活性,但是提供了一个速度非常快的索引引擎。 如果您不需要在不同的应用程序之间共享索引,就不必关心能否外部声明索引引擎的结构,只要看能否为ServiceRegistry提供全文搜索即可,这是为您提供的一种策略。 如果
3、需要在不同的应用程序之间共享索引,请继续阅读下面的内容。 收到一份名为Spring的订单 之前的解决方案的缺点之一是,从编写代码的角度来看,找不到既能提供灵活性又不会影响性能、不会增加代码复杂性的简单方法。基本上,转换流是硬编码的,无法方便地进行更改,除非提供某种灵活性框架。 Spring框架有一个非常有趣的特性,那就是其反向控制原则(也称为HollyeOtherMethod(); }} 那么可以将其转换为如下形式:classA{ publicvoidtheMethod(Bdependency){ dependency.someOtherMethod(); }
4、} 通过这种方式,您就可以通过此方法接口将第一个代码片段的隐式依赖项变为显式,将创建和注入实际B对象的职责移交给另一个组件,这一点可以由配置文件驱动,而不是由代码本身驱动。使用这一简单更改配置文件的方法(在Spring情形中,更改XML描述符),您可以更改组件的实现方式以使用不同的索引策略。 在此我们将不再继续深入讲述有关Spring框架及其编程模型的详细信息,现在我们将回顾一下基本逻辑工作流: 创建一个XML文件,描述您要使用的bean或组件,以及使用它们的方式。 在您的代码中,创建ApplicationContext或BeanFactory类的一个实例,然后将引用传递
5、给XML描述符。 Bean入门。 本图中的另一个重要部分是,Spring框架提供了特定于Lucene集成的集成模块和编程模型,此模块和模型提供了一组可与Spring框架的声明方法结合使用的bean,极大地促进了Lucene应用程序的开发。 在我们的示例中,我们将使用Spring来声明索引引擎、存储类型(基于RAM或基于文件)、文档转换器(以及文档转换器识别文档类型的方式,以便能够将文档分派给适当的处理程序)和模板bean(在Spring用语中,它能消除LuceneAPI对Spring用户的复杂性)。 创建插件 在本部分中,您将逐步了解如何对集成插件进行编码,以及了解涉及
6、到的不同框架的技术方面的知识。 粘合代码 因为我们将提供同一索引功能的两种实现,所以我们把这些实现隐藏在工厂(DocumentAnalyzerFactory)后面,该工厂公开了单个、通用的接口(DocumentAnalyzer),如下所示:package.ibm.luceneintegration;publicinterfaceDocumentAnalyzer{ publicstaticfinalintDEFAULT_MAX_TERMS=50; String[]getMostFrequentTermsAsArray(Stringname,byte[]content)t
7、hrosAsArray(Stringname,byte[]content,intmaxTerms)thros(Stringname,byte[]content)thros(Stringname,byte[]content,intmaxTerms)throe参数基于扩展名猜测文档类型。可以使用不同的技术来猜测类型,但是,为了简单起见,我们将坚持使用基于名称的猜测。 验证插件 ServiceRegistry验证插件将使用DocumentAnalyzerFactory来选择文档分析
此文档下载收益归作者所有