用户登录
用户注册

分享至

hibernate solr

  • 作者: Zdfgg
  • 来源: 51数据库
  • 2020-10-16

1、将解压包中的solr-4.7.1/dist/solr-4.7.1.war复制到tomcat_dir/webapps/目录,并命名为solr.war。


2、将solr-4.7.1/example/lib/ext/目录下的jar文件复制到tomcat/lib目录下,将solr-4.7.1/example/resources/下的log4j.properties文件复制到tomcat_dir/lib目录下;

切把 solr-4.7.1/example/solr,复制到tomcat_dir/bin下。


3、修改tomcat_dir/conf/server.xml

<Connector port="8080" protocol="HTTP/1.1"


               connectionTimeout="20000"

               redirectPort="8443" 

               URIEncoding="UTF-8" />


4、创建solr.xml,存放在路径:tomcat/conf/Catalina/localhost/solr.xml,内容:

<Context path="/solr" docBase="C:\Tomcat 7.0\webapps\solr.war"

         debug="0" crossContext="true">

  <Environment name="solr/home" type="java.lang.String" value="C:\Tomcat 7.0\bin\solr\" override="true" />

</Context>


PS:上面的docBase和value路径中不能存在中文字符,否则会出现404错误。


5、将C:\Tomcat 7.0\webapps下的solr.war包,启动项目解压;然后再添加几个jar包:

    solr-4.7.1\dist\solr-dataimporthandler-4.7.1.jar;

    solr-4.7.1\dist\solr-dataimporthandler-extras-4.7.1.jar;

    还要加载数据库驱动包:mysql-connector-java-3.1.13-bin.jar


6、在C:\Tomcat 7.0\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>


7、将tomcat\bin\solr\collection1\conf下增加data-config.xml文件,内容如下:

<dataConfig>  


    <dataSource type="JdbcDataSource"  

   driver="com.mysql.jdbc.Driver"  

   url="jdbc:mysql://192.168.1.221:3306/tmsdb"  

   user="root"  

   password="123456"/>  

    <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>


8、增加中文分词器,ik-analyzer的配置如下:

①目前的中文分词主要有两种 

    1,基于中科院ICTCLAS的隐式马尔科夫hhmm算法的中文分词器,例如smartcn等。(不支持自定义扩展词库) 

    2,基于正向迭代最细粒度切分算法(正向最大匹配并且最细分词)例如IK,庖丁等(支持自定义扩展词库) 

安装分词前,可以去下载IK的分词包 :

IK-Analyzer-4.7.1-0.0.1-SNAPSHOT.jar


下载完毕后,将此包放进tomcat\solr的\WEB-INF\lib下面:tomcat\webapps\solr\WEB-INF\lib  。

下面需要在solr的schemal.xml进行分词器注册:

<!--  配置IK分词器 -->  


    <fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100">

      <analyzer type="index">  

      <!--  分词-->  

        <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory"/>  

         <!--   禁用词过滤根据情况使用-->  

        <!-- <filter class="org.wltea.analyzer.lucene.IKStopFilterFactory"/> -->  

      </analyzer>  

      <analyzer type="query">  

       <!--  分词-->  

        <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory"/>  

        <!--   禁用词过滤根据情况使用-->  

        <!-- <filter class="org.wltea.analyzer.lucene.IKStopFilterFactory"/>-->  

      </analyzer>  

    </fieldType>


最后还得配置一个引用字段就OK了

<field name="ik" type="text_ik" indexed="true" stored="true" multiValued="true"/>


②它的安装部署十分简单,将IKAnalyzer2012.jar部署亍项目的lib目录中;IKAnalyzer.cfg.xml不stopword.dic文件放置在class根目录(对于web项目,通常是WEB-I NF/classes目彔,同hibernate、log4j等配置文件相同)下即可 ;然后配置solr4.7中schema.xml配置解析器:

<schema name="example" version="1.1"> 


    …… 

    <fieldType name="text" class="solr.TextField"> 

        <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> 

    </fieldType>

    …… 

</schema>


软件
前端设计
程序设计
Java相关