CM开发日志 - 搜索引擎(一)

时间:2022-06-04 18:30:11

IBM WebSphere Commerce使用了Apache Solr Search做为搜索引擎解决方案,提供了全方位的封装,主要体现在如下方面:

  • Solr多核的创建
  • DIH (Data Import Handle) 处理的preprocess & indexbuild
  • 由Search REST Service提供的很方便的针对索引文件的查询

这三个方面也是贯穿solr搜索的整个生命周期的。

介绍:开发环境

目前我使用的WCS版本是WebSphere Commerce Version 7 - Feture Pack 7,集成了Solr 4.3.0,FEP7对Search的改动我觉得主要有以下两点:

  • 以前是将Search做为一个WAR包嵌入到WC EAR包当中。现在是将两者分离开来,成为两个独立的应用。
  • 提供Search REST Service。更好的通过API去查询索引文件。

另外,应用服务器是与WCS FEP7相对应的WAS 7.0.0.31,本地集成开发环境(IDE)是RAD。

Apache Solr介绍

Solr是构建于Lucene之上的企业级全文搜索引擎,提供了可靠的,可扩展,高度定制化的解决方案。

Solr解决了从企业数据库到本地索引文件的创建和持久化过程,减少了数据库服务器的负载,并且提供了负载均衡的解决方案: solr主从服务器,分发服务器,还有solr index的复制。

Solr和Lucene?

Lucene主要专注于底层的设计,而solr负责应用层的设计;另外Lucene本质上是搜索库,而不是独立的应用程序。综合以上两点,一句话概况: Solr是构建于Lucene之上,面对企业级应用的搜索应用。

Lucene提供了底层的设计,比如:分析器(Analyzer)。

分析器的大致作用是对一个document进行索引时,其中的每个field中的数据都会经历分析(分析就是组合分词和过滤),最终将一句话分成单个的单词,去掉句子当中的空白符号,大写转换小写,复数转单数,去掉多余的词,进行同义词代换等等。
如:This is a blog! this, is, a 会被去除,最后最剩下blog。当然!这个符号也会被去除的。
这个过程是在索引和查询过程中都会进行的,而且通常两者进行的处理的都是一样的,这样做是为了保证建立的索引和查询的正确匹配。