程序员人生 网站导航

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

栏目:互联网时间:2015-01-09 08:05:47

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

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

这3个方面也是贯穿solr搜索的全部生命周期的。

介绍:开发环境

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

  • 之前是将Search做为1个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本质上是搜索库,而不是独立的利用程序。综合以上两点,1句话概况: Solr是构建于Lucene之上,面对企业级利用的搜索利用。

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

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

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐