solr4.0环境搭建

因近期想搞个知识库,所以选择solr,现在最新的solr是4.0,所以用solr4.0。

服务器:tomcat6

  JDK   :1.6

 SOLR :4.0

中文分词器 :ik-analyzer,mmseg4j


安装:目前mmseg4j的版本是mmseg4j-1.9.0.v20120712-SNAPSHOT,经过测试,发现这个版本有bug:

	java.lang.RuntimeException: java.lang.NoSuchMethodError: org.apache.l
	ucene.analysis.Tokenizer.reset(Ljava/io/Reader;)V
	由于solr4.0对其中的有些类与方法做了调整,所以还是等待mmseg4j新版本修复吧。果断使用了ik-analyzer。
    一、将apache-solr-4.0.0\example\webapps\solr.war放在tomcat的webapps下启动服务器解压该war包,另外还需要增加几个jar包:
	apache-solr-dataimporthandler-4.0.0.jar
	apache-solr-dataimporthandler-extras-4.0.0.jar
	这两个jar包可以在solr的dist中可以找到
	另外还需要相应数据库的驱动包,比如
	mysql-connector-java-5.1.13-bin.jar
    二、将apache-solr-4.0.0\example下的solr拷贝至apache-tomcat-6.0.29-solr\bin下
    三、在apache-tomcat-6.0.29-solr\bin\solr\collection1\conf下的solrconfig.xml增加以下数据库配置
	
  <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">     
          <lst name="defaults">     
               <str name="config">data-config.xml</str>     
          </lst>     
  </requestHandler> 

    四、将apache-tomcat-6.0.29-solr\bin\solr\collection1\conf下增加data-config.xml文件,内容如下:
	
<dataConfig>  
    <dataSource type="JdbcDataSource"  
   driver="com.mysql.jdbc.Driver"  
   url="jdbc:mysql://localhost:3306/solrdb"  
   user="root"  
   password="888888"/>  
    <document name="content">  
        <entity name="node" query="select id,author,title,content from solrdb">  
            <field column="id" name="id" />  
            <field column="author" name="author" />  
            <field column="title" name="title" />  
            <field column="content" name="content" />
        </entity>  
    </document>  
</dataConfig>
 
    五、增加中文分词器,ik-analyzer的配置如下:
	它的安装部署十分简单,将IKAnalyzer2012.jar部署亍项目的lib目录中;IKAnalyzer.cfg.xml不stopword.dic文件放置在class根目录对于web项目,通常是WEB-I	NF/classes目彔,同hibernate、log4j等配置文件相同)下即可
	solr4.0中schema.xml配置解析器:
	
<schema name="example" version="1.1"> 
	…… 
	<fieldType name="text" class="solr.TextField"> 
		<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> 
	</fieldType>
	…… 
</schema>
六、schema.xml完整配置:
<?xml version="1.0" encoding="UTF-8" ?>  
<schema name="example" version="1.5">  
  <types>      

    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>

  
      <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> 
  <!-- IKAnalyzer 配置 -->
     <fieldType name="text" class="solr.TextField"> 
     	<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> 
     </fieldType>
   
</types>  
  
  
 <fields>  
   <field name="id" type="string" indexed="true" stored="true" required="true" /> 
   <field name="author" type="text" indexed="true" stored="true" multiValued="false"/>  
   <field name="title" type="text" indexed="true" stored="true" multiValued="false"/>  
   <field name="content" type="text" indexed="true" stored="true" multiValued="true" />  
   <field name="_version_" type="long" indexed="true" stored="true"/>
 </fields>  
  
 <uniqueKey>id</uniqueKey>  
 <defaultSearchField>content</defaultSearchField>  
 <solrQueryParser defaultOperator="OR"/>  
<copyField source="title" dest="content"/>  
<copyField source="author" dest="content"/>

  
</schema>  

解析:multiValued:是否包含多个值,如果要使用后面的copyField将其他字段放入默认搜索中就必须允许多指,否则会报:multiple values encountered for non multiValued copy field content
			   defaultSearchField配置默认搜索索引,copyField可以将 title、author字段添加至content默认搜索中
	七、登录管理页面:
	中文分词器分词的示例:
	
	query示例:
	
 


  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值