现在的位置: 首页 > 综合 > 正文

Solr/Solrj初探

2013年10月04日 ⁄ 综合 ⁄ 共 3137字 ⁄ 字号 评论关闭

 

Solr/Solrj初探

 

一、solr简介(摘自[开源中国])

 

Apache Solr (读音: SOLer) 是一个开源的搜索服务器。Solr使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。Apache Solr 中存储的资源是以 Document 为对象进行存储的。每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性。Solr 中的每个 Document 需要有能唯一标识其自身的属性,默认情况下这个属性的名字是 id,在 Schema 配置文件中使用:<uniqueKey>id</uniqueKey>进行描述。

 

Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。

 

二、solr安装和配置

 

1.        在apche官网下载solr,http://lucene.apache.org/solr/,这里以solr4.1为例,下载文件solr-4.1.0.zip;

2.        Solr的环境要求

1)        满足Solr的版本要求:jdk1.5或者更高版本(注意:如果你采用的是solr4或者solr4以上版本,JDK的版本要求在1.6或者1.6以上)

2)        Solr的发行版:第一步中的solr-4.1.0.zip就可以啦。

3.        进入solr的wiki,地址为http://wiki.apache.org/solr/,从中可以提取出以下大致步骤:(详细可以打开前面的wiki网址仔细研读)

1)        停止当前servlet容器(比如tomcat/jetty/weblogic等),笔者采用的是tomcat

2)        复制solr-*.war(这里是solr-4.1.0.zip)包到你的tomcat的webapp目录;

3)        从solr的发行版中找到solr目录,比如N:\work\java\solr\solr-4.1.0\example\solr(该目录位于solr发行版的解压目录下);

4)        启动你当前的servlet容器,配置好你的solr Home,笔者采用的是以下方法:将上一步的目录文件夹复制到N:\work\java\tomcat6\apache-tomcat-6.0.35\webapps\solr-4.1.0;

配置solr.solr.name:打开~ webapps\solr-4.1.0\web-inf\web.xml找到<env-entry>节点,取消注释将<env-entry>节点下的<env-entry-value>节点值配置成../webapps/solr-4.1.0/solr,其他不变 ;

5)        这时候等待tomcat重新部署,然后就运行http://localhost:8080/solr-4.1.0/admin

(注意tomcat的端口和当前启动状态),solr有关的tomcat配置请参阅http://wiki.apache.org/solr/SolrTomcat,但是一般情况下不需要这样的配置,如果有需求也可按照配置说明进行配置;

6)        打开地址:http://localhost:8080/solr-4.1.0/admin

7)        有关solr的其他配置可以参阅http://wiki.apache.org/solr/#Installation_and_Configuration

 

 

 

三、索引和搜索

有关solr的索引在wiki上也有详细的解说,但是对于熟悉java的我们来讲,solrj更适合做solr的客户端,进而进行搜索和索引操作。

废话不多说,步骤如下:

1)        设置运行环境:如果你采用maven,那对jar的管理将很轻松

      <dependency>
               <artifactId>solr-solrj</artifactId>
               <groupId>org.apache.solr</groupId>
               <version>1.4.0</version>
               <type>jar</type>
               <scope>compile</scope>
        </dependency>
        <dependency>
               <artifactId>solr-core</artifactId>
               <groupId>org.apache.solr</groupId>
               <version>1.4.0</version>
               <type>jar</type>
               <scope>compile</scope>
        </dependency>
        <dependency>
               <groupId>javax.servlet</groupId>
               <artifactId>servlet-api</artifactId>
               <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.5.6</version>
        </dependency>

 

 

如果你对maven不熟悉,也不要紧,你可以从solr的发行版中找出以下jar包并手动加入它们到你的classpath中,

从 ~/dist找到:

  • apache-solr-solrj-*.jar

从 /dist/solrj-lib找到

  • commons-codec-1.3.jar
  • commons-httpclient-3.1.jar
  • commons-io-1.4.jar
  • jcl-over-slf4j-1.5.5.jar
  • slf4j-api-1.5.5.jar

2)        添加索引:http://wiki.apache.org/solr/Solrj#Adding_Data_to_Solr,这上面可以添加POJO或者其他

 

四、One last word

初试solr,感觉它对lucene的封装很强大,对文档和域的管理采用XML配置方式,易于理解,而且solr服务的配置也简单易操作。

Solrj作为solr服务的java语言版本的客户端,对比如对域(Field)的操作,索引的添加方式以及搜索的便捷:比如对POJO的域注解(在POJO的属性字段或者set方法上加上@Field(“fieldName”)),以及高亮显示都有很好的支持.

 

 

参考资料:

http://wiki.apache.org/solr/solr配置以及使用说明wiki

http://wiki.apache.org/solr/Solrjsolrj使用说明wiki

 

抱歉!评论已关闭.