Solr Server服务器端安装配置

Solr Server服务器端安装配置

一、下载SOLR相关

http://mirror.bit.edu.cn/apache/lucene/solr/4.9.1/solr-4.9.1.zip

下载后解压到D:\skg\soft\solr-4.9.1

Solr-4.9.1程序包的目录结构 

➔ contrib :存放爱好者贡献的代码。

➔ dist :存放Solr 构建完成的 JAR 文件、WAR 文件和 Solr 依赖的 JAR 文件。     

➔ example :是一个安装好的Jetty 中间件,其中包括一些样本数据和 Solr 的配置信息。 

➔ example/etc :Jetty 的配置文件。         

➔ example/multicore :当安装Slor multicore 时,用来放置多个 Solr 主目录。

➔ example/example-DIH :可以作为solr的主目录,里面包含多个索引库,以及hsqldb的数据,里面有连接数据库的配置示例,以及邮件、rss的配置示例。

➔ example/solr :默认安装时一个Solr 的主目录。

➔ example/webapps :Solr 的 WAR 文件部署在这里。

➔ docs:Solr 的文档。

下载IKAnalyzer

http://download.csdn.net/detail/l444304541/5806281

下载后解压到D:\skg\soft\IKAnalyzer\IKAnalyzer2012FF_u1.jar

二、Tomcat 部署 Solr服务端

1.创建目录D:\skg\skg-solr-server\solr-web

2.解压D:\soft\solr-4.9.1\solr-4.9.1\example\webapps\solr.war 到 D:\skg\skg-solr-server\solr-web

 

 

3.复制D:\skg\soft\IKAnalyzer\IKAnalyzer2012FF_u1.jar 到 D:\skg\skg-solr-server\solr-web\WEB-INF\lib

 

 

4.创建目录 D:\skg\skg-solr-server\solr-home

5.复制D:\skg\soft\solr-4.9.1\example\solr 到 D:\skg\skg-solr-server\solr-home

 

 

6.重命名 D:\skg\skg-solr-server\solr-home\collection1 改为 D:\skg\skg-solr-server\solr-home\product

7.打开文件D:\skg\skg-solr-server\solr-home\product\core.properties   

名称:name=collection1 

改为:name = product

8.打开D:\skg\skg-solr-server\solr-web\WEB-INF\web.xml文件,修改 env-entry-value 为 solr_home目录路径

<env-entry>
  <env-entry-name>solr/home</env-entry-name> 
  <env-entry-type>java.lang.String</env-entry-type> 
  <env-entry-value>D:\skg\skg-solr-server\solr-home\</env-entry-value> 
</env-entry>

9.打开tomcat/conf/server.xml文件,添加下面配置

 <Host name="localhost" appBase="webapps" unpackWARs="true">
  <Context path="/solr" docBase="D:\skg\skg-solr-server\solr-web" reloadable="false"></Context>
 </Host>

10.启动tomcat ,浏览器转入 http://localhost/solr/ 

 

 

这看到这个界面表示安装成功,选择左边 core selector可以切换集合(集合类似数据表)。

选择 product下级Query菜单可以在线查询

 

 

三、设置solr schema.xml

备份D:\skg\skg-solr-server\solr-home\product\conf\schema.xml,修改 schema.xml如下,红色字是修改内容。

<?xml version="1.0" encoding="UTF-8" ?>
<schema name="skg" version="1.5">
   <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      </analyzer>
</fieldType>
 
    <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType> 
    <!--字段类型 索引:默认分词 查询:最大词长分词-->
   <fieldType name="text_ik" class="solr.TextField">  
        <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>  
       <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>  
   </fieldType> 
 
   <!--字段类型 索引:默认分词 查询:默认分词-->
   <fieldType name="text_cn" class="solr.TextField">
        <analyzer type="index"  class="org.wltea.analyzer.lucene.IKAnalyzer"/>  
       <analyzer type="query"  class="org.wltea.analyzer.lucene.IKAnalyzer"/>  
    </fieldType>
   <!--solr 版本号-->
   <field name="_version_" type="long" indexed="true" stored="true"/>
   <!--solr 唯一标识号-->
   <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
   <!--字段名称,类型-->
   <!--产品key:不索引、保存-->
   <field name="key" type="string" indexed="false" stored="true" />
   <!--产品标题: ik分词、索引、保存-->
   <field name="title" type="text_ik" indexed="true" stored="true" />
   <!--产品子标题: ik分词、索引、保存-->
   <field name="sub_title" type="text_ik" indexed="true" stored="true" />
   <!--产品分类ID: ik分词、索引、保存-->
   <field name="cid" type="string" indexed="true" stored="true" />
   <!--产品图片: 不索引、保存-->
   <field name="img" type="string" indexed="false" stored="true" />
   <!--产品价格: 索引、保存-->
   <field name="price" type="double" indexed="true" stored="true" />
   <!--产品属性: 索引、保存-->
   <field name="props" type="text_cn" indexed="true" stored="true" />
   <!--产品描述: 索引、保存-->
   <field name="text" type="text_cn" indexed="true" stored="true" />
   <!--产品所属地区: 索引、保存-->
   <field name="area" type="double" indexed="true" stored="true" />
   <!--产品组合件数: 不索引、保存-->
   <field name="num" type="int" indexed="false" stored="true" />
   <!--产品最后更新时间: 索引、保存-->
   <field name="time" type="long" indexed="true" stored="true" />
   <!--产品状态: 不索引、保存-->
   <field name="status" type="string" indexed="false" stored="true" />
   <!--产品所在地区: 索引、保存-->
   <field name="area_id" type="string" indexed="true" stored="true" />
   <!--产品所在地城市: 索引、保存-->
   <field name="city_id" type="string" indexed="true" stored="true" />
   <!--产品样式: 索引、保存-->
   <field name="style_id" type="string" indexed="true" stored="true" />
   <!--字段名称,类型-->
 
     <!--唯一ID字段名称-->
<uniqueKey>id</uniqueKey>
<!--默认查询字段-->
<defaultSearchField>title</defaultSearchField>
<!--默认查询条件-->
    <solrQueryParser defaultOperator="OR"/>
    
    <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="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
    <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
    <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
    <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
    <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
    <fieldtype name="binary" class="solr.BinaryField"/>
    <fieldType name="random" class="solr.RandomSortField" indexed="true" />
 
    <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>
    <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>
        <filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
        <filter class="solr.PorterStemFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt" />
        <filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
        <filter class="solr.PorterStemFilterFactory"/>
      </analyzer>
    </fieldType>
    <fieldType name="text_en_splitting" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
      <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
        <filter class="solr.PorterStemFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
        <filter class="solr.PorterStemFilterFactory"/>
      </analyzer>
    </fieldType>
    <fieldType name="text_en_splitting_tight" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
      <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
        <filter class="solr.EnglishMinimalStemFilterFactory"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
    </fieldType>
    <fieldType name="text_general_rev" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.ReversedWildcardFilterFactory" withOriginal="true" maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>
    <fieldType name="alphaOnlySort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
      <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.TrimFilterFactory" />
        <filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replacement="" replace="all" />
      </analyzer>
    </fieldType>
    <fieldtype name="phonetic" stored="false" indexed="true" class="solr.TextField" >
      <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.DoubleMetaphoneFilterFactory" inject="false"/>
      </analyzer>
    </fieldtype>
    <fieldtype name="payloads" stored="false" indexed="true" class="solr.TextField" >
      <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="float"/>
      </analyzer>
    </fieldtype>
    <fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
      </analyzer>
    </fieldType>
    <fieldType name="descendent_path" class="solr.TextField">
      <analyzer type="index">
<tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
      </analyzer>
      <analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory" />
      </analyzer>
    </fieldType>
    <fieldType name="ancestor_path" class="solr.TextField">
      <analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory" />
      </analyzer>
      <analyzer type="query">
<tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
      </analyzer>
    </fieldType>
    <fieldtype name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField" />
    <fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>
    <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
    <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType" geo="true" distErrPct="0.025" maxDistErr="0.000009" units="degrees" />
    <fieldType name="currency" class="solr.CurrencyField" precisionStep="8" defaultCurrency="USD" currencyConfig="currency.xml" />
    <fieldType name="text_ar" class="solr.TextField" positionIncrementGap="100">
      <analyzer> 
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ar.txt" />
        <filter class="solr.ArabicNormalizationFilterFactory"/>
        <filter class="solr.ArabicStemFilterFactory"/>
      </analyzer>
    </fieldType>
</schema>
 

到这里 solr服务器端已安装配置完成。

猜你喜欢

转载自lengjing.iteye.com/blog/2182599
今日推荐