Solr入门

来源:互联网 发布:工人物语6 知乎 编辑:程序博客网 时间:2024/06/03 15:57

1.准备工作

solr5.5版本之前,conf中为schema.xml文件,solr5.5版本之后,改为managed-schema文件,内容一样,形式不一样。

solr版本的不一样对JDK的版本和Tomcat版本也有要求,最新solr6需要jdk1.8和Tomcat8


2.环境

solr5.3.1

jdk1.7

tomcat7



3.solr部署到Tomcat

示例:

3.1.D:\solr-5.5.3\server\solr-webapp\webapp拷贝此目录及此目录下的所有文件至E:\tom7\apache-tomcat-7.0.73\webapps\solr;
将webapp文件拷贝至tomcat7的webapps下改名为solr;
拷贝E:\solr-5.3.1\server\lib\ext目录下所有的jar包以及E:\solr-5.3.1\server\resources下的log4j配置文件至Tomcat下新建的solr项目
E:\tom7\apache-tomcat-7.0.73\webapps\solr\WEB-INF\lib目录下,修改web.xml文件,添加
    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>E:\tom7\solr_home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

3.2.创建E:\tom7\solr_home,创建solr_home,拷贝E:\solr-5.3.1\server\solr下所有的文件至solr_home目录下

3.3.这时候启动Tomcat,登录localhost:8080/solr进入solr管理界面



4.创建solr核心
4.1 在solr_home目录下创建一个文件夹随意命名,这里用core0命名,将E:\tom7\solr_home\configsets\basic_configs目录下的conf文件夹拷贝至当前core0目录,
创建data文件夹,此文件夹是用于保存索引和log数据。


5.链接mysql数据库创建索引

需要用到DataImportHandler.jar在E:\solr-5.3.1\dist\solr-dataimporthandler-5.3.1.jar拷贝至E:\tom7\apache-tomcat-7.0.73\webapps\solr\WEB-INF\lib目录下
同样需要将mysql-connector-java-5.1.6.jar拷贝至E:\tom7\apache-tomcat-7.0.73\webapps\solr\WEB-INF\lib目录下
修改E:\tom7\solr_home\core0\conf\solrconfig.xml
<requestHandler name="/dataimport" class="solr.DataImportHandler">  
   <lst name="defaults">  
     <str name="config">db-data-config.xml</str>  
   </lst>  
 </requestHandler>
在当前目录新建db-data-config.xml并编辑
<dataConfig>
    <dataSource name="solrDB" type="JdbcDataSource"  
                              driver="com.mysql.jdbc.Driver"  
                              url="jdbc:mysql://localhost:3306/poi"  
                              user="root"  
                              password="123456" batchSize="-1"/>        
    <document name="poi">    
                   <entity  dataSource="solrDB" name="poi"
                             query="select *from poi">    
                          <field column="id" name="id" />    
                          <field column="name" name="name" />    
                          <field column="type" name="type" />
                          <field column="lat" name="lat"/>    
                          <field column="lng" name="lng"/>    
                     </entity>    
                     
    </document>   
    </dataConfig>

修改schema.xml
 <uniqueKey>id</uniqueKey>
       <!-- mysql -->  
    <field name="id" type="long" indexed="true" stored="true" required="true" />   
    <field name="name" type="text_ik" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true"/>   
    <field name="type" type="int" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true"/>   
    <field name="lat" type="float" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true"/>   
    <field name="lng" type="float" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true"/>   
    <!-- mysql -->  

注意<uniqueKey>id</uniqueKey>  <field name="id" type="long" indexed="true" stored="true" required="true" />是默认存在的,可以修改


6.登录http://localhost:8080/solr,添加core命名成和自己自定义的core0一样即可,在dataimport一栏中,选择full-import
并且选择entity为自己要建立索引的表 运行即可。
报错解决方案:
注意:solr创建索引很快,如果表数据不超过1万条,几秒钟就出结果,如果没有结果,在log中查看错误异常
1.DataImportHandler运行异常,是因为表数据太大,内存溢出,添加batchSize="-1"即可,如下所示:

<ataSource name="solrDB" type="JdbcDataSource"  
                              driver="com.mysql.jdbc.Driver"  
                              url="jdbc:mysql://localhost:3306/poi"  
                              user="root"  
                              password="123456" batchSize="-1"/>   
2.提示找不到页面,将E:\solr-5.3.1\example\example-DIH\solr\solr\conf目录下的3个html文件拷贝至core0/conf目录下即可




0 0