首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

构建可提供全面、丰富检索结果的企业搜索服务(3)

构建可提供全面、丰富检索结果的企业搜索服务(3)

Business Object(业务对象)有了预定义的业务模型之后,就可以以其为蓝本创建业务对象了。业务对象是在进行索引过程中,根据预定义的业务模型创建的业务对象。业务对象是将来实际要进行检索的对象。如果说预定义业务模型是 Class,那么业务对象就是 Class 对应的 Instance 了。例如,我们前面已经定义了“解决方案”业务模型,那么在索引过程中我们就可以根据“解决方案”创建诸如:零售业解决方案、银行业解决方案、物流业解决方案等业务对象了。例如:
清单 4. “银行业解决方案”对象内容
1
2
3
4
5
6
7
<business-model>
<id>1234567890</id>
<model-name>solution</model-name>
<object-name>银行业解决方案 </object-name>
<catalog>金融业解决方案 </catalog>
<contact-info> … </contact-info>
</business-model>




请注意,这里并不包含“新闻”、“关联产品”和“文档”等关联对象的信息,关联对象的信息在进行检索处理的时候将根据 Key 属性进行检索,然后再根据模型定义进行组合。
清单 5. “银行业解决方案新闻”对象内容
1
2
3
4
5
6
7
8
<business-model>
  <id>234567899</id>
  <model-name>news</model-name>
<object-name>银行业解决方案新闻 </object-name>
<catalog>银行业解决方案 </catalog>
<title>解决方案在 X 银行的应用 </title>
<content> … </content>
</business-model>




清单 6. “软件 A”对象内容
1
2
3
4
5
6
7
8
<business-model>
<id>234567899</id>
<model-name>product</model-name>
<object-name>软件 A</object-name>
<catalog>银行业解决方案 </catalog>
<version>2.0</version>
<platform>Linux</Platform>
</business-model>




定制索引服务基于预定义检索模型解决方案的索引过程不同于一般的企业搜索解决方案中的纯粹的索引处理,而是对索引源进行结构化的索引,换句话说,索引后的结果是结构化的、有意义的信息,而不是将所有数据进行综合的平面信息(比如,Internet 上常用的搜索引擎:Google、Yahoo 等),这些结构化的、有意义的索引结果是下一步进行精确搜索服务构建的基础。毫无疑问,如果无法对索引过程进行定制,是无法根据预定义的业务模型创建业务对象以便进行精确的检索的。定制索引服务的方式在对索引服务进行定制的时候,可以选择采用以下两种方式之一或全部来进行:
定制方式 1 ——业务对象推送
预先根据预定义的业务模型创建好业务对象,然后将业务对象推送给索引引擎进行处理。这个处理模式类似于先进行 ETL 过程,然后再进行索引。比如对一个产品新闻进行索引的时候,先根据预定义的业务模型创建产品新闻对象,然后将产品新闻对象推送给索引服务。
定制方式 2 ——索引资源分析器
对于不同的索引内容,定义对应的分析器,由分析器来对索引内容进行索引处理。例如,定义一个数据库表的分析器 A,当对一个数据库表的内容进行索引的时候,由分析器 A 进行解析处理。
很明显,进行索引处理时,如果可以自动对索引内容进行分析,然后根据预定义的业务模型自动创建业务对象,那么这无疑是更为完美的解决方案,但是这在技术上暂时可能还无法实现。
由于各个供应商提供的企业搜索解决方案的定制能力和定制方法存在不同,在使用的过程中需要根据实际情况分别进行设计。另外,有的供应商提供的解决方案目前可能并不支持对索引过程的定制接口(不过,检索过程的定制接口都会提供),技术选型的时候也需要加以考虑。
定制搜索服务定制的搜索服务在将检索结果呈现给用户的时候,根据检索内容的不同一般应该有两种呈现方式,例如:对于一般的关键字检索,基于预定义模型的搜索服务类似于一般的检索服务,仅仅是将所有相关的结果罗列起来,展现给用户。如果检索内容是在索引过程中根据预定义的业务模型创建的业务对象,检索服务将根据业务模型的定义,将业务对象立体化的信息呈现给用户,例如:
图 4. 丰富的检索结果不过,只要定义足够完整的业务模型,我们显然可以做的更好。
假设用户检索“银行业解决方案”,利用检索服务,首先会得到“银行业解决方案”对象。然后根据“银行业解决方案”对象的模型定义,再查询其对应的“新闻”和“产品”属性,这样会获得“银行业解决方案新闻”和“软件 A”两个对象。将这些对象根据预定义的画面布局进行组合,最后呈现给用户的就是关于“银行业解决方案”的准确、全面、详细的信息了。在一个检索结果中,用户就可以浏览到所有同检索目标紧密相关的信息资源,而不会被一些相关度较小的信息所干扰,很明显,这将显著地提高查询服务的效果和用户体验。
返回列表