[Solr] Apache Solr 简介及使用

前言

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

Solr下载

  1. 到solr的官网进行下载:http://lucene.apache.org/
  2. 下载历史版本的网址: http://archive.apache.org/dist/lucene/solr/

环境准备

服务器相关包

  1. apache-tomcat-7.0.77.zip
  2. solr-4.10.2.zip

以下是Solr需要的Jar

  1. commons-logging-1.1.1.jar
  2. IKAnalyzer2012FF_u1.jar
  3. log4j-1.2.16.jar
  4. slf4j-api-1.7.6.jar
  5. slf4j-log4j12-1.7.2.jar

IK分词

  1. ext.dic
  2. IKAnalyzer.cfg.xml
  3. log4j.properties
  4. stopword.dic

针对IK分词器的四个文件具体内容在上文中有提到 : Lucene搜索引擎简介

Solr的目录结构

1> 根目录结构
[Solr] Apache Solr 简介及使用_第1张图片

2> example目录
[Solr] Apache Solr 简介及使用_第2张图片

Solr启动方式一

分别解压 apache-tomcat-7.0.77.zipsolr-4.10.2.zip

在CMD下启动 E:\Solr\solr-4.10.2\example 下的 start.jar

//CMD下
E:\Solr\solr-4.10.2\example> java -jar start.jar

访问 http://localhost:8983/solr/ 即可

Solr启动方式二

1> 将 E:\Solr\solr-4.10.2\example\webapps 下的 solr.war 放到 tomcat的webapps下

2> 启动tomcat,等 solr.war 解压完毕后,关闭tomcat,并重命名solr.warsolr.war.bak,防止重启覆盖

3> 将文中提到的5个需要准备好的Jar包及IK分词器复制到 E:\Solr\apache-tomcat-7.0.77\webapps\solr\WEB-INF

[Solr] Apache Solr 简介及使用_第3张图片

下面是 classes 与 lib 文件夹里的详细内容

[Solr] Apache Solr 简介及使用_第4张图片

[Solr] Apache Solr 简介及使用_第5张图片

4> 建立索引库

E:\Solr\solr-4.10.2\example\solr 里的文件全部复制,
新建文件夹solr_home创建索引库,将复制的内容全部粘贴到 E:\Solr\solr_home
[Solr] Apache Solr 简介及使用_第6张图片

E:\Solr\solr-4.10.2 下的 contribdist文件夹复制到 E:\Solr\solr-4.10.2\example\solr

[Solr] Apache Solr 简介及使用_第7张图片

修改 E:\Solr\solr_home\collection1\conf 下的 solrconfig.xml
将以下

  dir="../../../contrib/extraction/lib" regex=".*\.jar" />
  dir="../../../dist/" regex="solr-cell-\d.*\.jar" />

  dir="../../../contrib/clustering/lib/" regex=".*\.jar" />
  dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />

  dir="../../../contrib/langid/lib/" regex=".*\.jar" />
  dir="../../../dist/" regex="solr-langid-\d.*\.jar" />

  dir="../../../contrib/velocity/lib" regex=".*\.jar" />
  dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />

修改为

  dir="../contrib/extraction/lib" regex=".*\.jar" />
  dir="../dist/" regex="solr-cell-\d.*\.jar" />

  dir="../contrib/clustering/lib/" regex=".*\.jar" />
  dir="../dist/" regex="solr-clustering-\d.*\.jar" />

  dir="../contrib/langid/lib/" regex=".*\.jar" />
  dir="../dist/" regex="solr-langid-\d.*\.jar" />

  dir="../contrib/velocity/lib" regex=".*\.jar" />
  dir="../dist/" regex="solr-velocity-\d.*\.jar" />

5> 修改tomact下的solr的web.xml

打开如下注释,并修改索引库位置

    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>E:\Solr\solr_home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

接下来就可以启动tomcat了~ 访问: http://localhost:8080/solr 即可

Solr界面说明

1> 仪表盘信息

[Solr] Apache Solr 简介及使用_第8张图片

2> solr启动及运行过程中的log信息

[Solr] Apache Solr 简介及使用_第9张图片

3> 索引库的选择

[Solr] Apache Solr 简介及使用_第10张图片

documents
[Solr] Apache Solr 简介及使用_第11张图片

query

[Solr] Apache Solr 简介及使用_第12张图片

schema

[Solr] Apache Solr 简介及使用_第13张图片

Solr的配置文件

solrConfig.xml : solr的核心配置文件

solrconfig.xml 配置文件主要定义了 solr 的一些处理规则,包括索引数据的存放 位置,更新,删除,查询的一些规则配置。一般此文件不需要进行修改, 采取默认即可

schema.xml: solr约束文件

先贴上极简版




<schema name="example" version="1.5">
   <field name="_version_" type="long" indexed="true" stored="true"/>
   <field name="_root_" type="string" indexed="true" stored="false"/> 
   <field name="id" type="string" indexed="true" 
                    stored="true" required="true" multiValued="false" /> 
   <field name="name" type="text_ws" indexed="true" stored="true"/>
   <field name="price"  type="float" indexed="true" stored="true"/>
   <field name="title" type="text_ws" indexed="true" stored="true" multiValued="false"/>
   <field name="content" type="text_ws" indexed="true" stored="true" multiValued="false"/>
   <field name="text" type="text_ws" indexed="true" stored="true" multiValued="true"/>
   <field name="date"  type="date" indexed="true" stored="true"/>
   <field name="binary"  type="binary" indexed="true" stored="true"/>

   <dynamicField name="*_ss" type="string"  indexed="true"  
                                stored="true" multiValued="true"/>

   <uniqueKey>iduniqueKey>

   <copyField source="title" dest="text"/>
   <copyField source="content" dest="text"/>

    <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
    <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
    <fieldType name="int" class="solr.TrieIntField" 
                        precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="float" class="solr.TrieFloatField" 
                        precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="long" class="solr.TrieLongField" 
                        precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="double" class="solr.TrieDoubleField" 
                        precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="date" class="solr.TrieDateField" 
                        precisionStep="0" positionIncrementGap="0"/>
    <fieldtype name="binary" class="solr.BinaryField"/>


    <fieldType name="text_ws" class="solr.TextField">
        <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    fieldType>
schema>

下面是字段的说明


<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>


<dynamicField name="*_is" type="int" indexed="true" stored="true" multiValued="true"/>




<uniqueKey>iduniqueKey>




<copyField source="cat" dest="text"/>




<fieldType name="managed_en" class="solr.TextField" positionIncrementGap="100">
<analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.ManagedStopFilterFactory" managed="english"/>
    <filter class="solr.ManagedSynonymFilterFactory" managed="english"/>
analyzer>
fieldType>

添加Solr索引库

E:\Solr\solr_home 下的 collection1 复制一份 , 重命名为 collection2

[Solr] Apache Solr 简介及使用_第14张图片

删除 E:\Solr\solr_home\collection2 下的 data

修改 E:\Solr\solr_home\collection2 下的 core.properties ,修改索引库名称

#name=collection1
name=mySolrDb

重启一下tomcat即可

至此: solr的部署就完成了

你可能感兴趣的:(搜索引擎)