Solr7.3 Windows 单机部署

最近在学习solr搜索,在win7下搭建一个单机版的solr,并将ikanalizer中文分词器配置进去

参考文章:Centos7下单机部署Solr7.3

1、准备工作

下载apache-tomcat-8.5.30,solr-7.3.0.tgz,Jdk1.8

下载路径:链接:https://pan.baidu.com/s/1vk8Rs5c2ZsTuRFobHhjgBA 密码:9b6b

2、tomcat部署solr7

1)解压solr7,进入solr7解压后的目录(C:\Users\Administrator\Downloads\solr-7.3.0),复制并重命名solr-7.3.0目录里的server/solr-webapp/webapp文件夹到tomcat的webapps目录为solr7。



2)将server/lib/ext/ 文件夹下的所有jar复制到 D:\Program Files\apache-tomcat-8.5.30\webapps\solr7\WEB-INF\lib下



3)将server/lib/metrics* 开头的5个jar复制到 D:\Program Files\apache-tomcat-8.5.30\webapps\solr7\WEB-INF\lib下


4)把server/resources/目录下的log4j.properties,复制到solr7的WEB-INF/,要创建一个classes的目录



5)将solr相关文件复制到D:\Program Files\solr7Home


6)修改D:\Program Files\apache-tomcat-8.5.30\webapps\solr7\WEB-INF下的web.xml,将web工程和solrHome关联

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>D:/Program Files/solr7Home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>


7)注释web.xml中以下内容


8)启动tomcat,访问http://192.168.1.220:8080/solr7/index.html,出现以下界面则配置成功


3、Solr配置core

1)点击Core Admin,add Core

    name:自定义的名字,建议和instanceDir保持一致
    instanceDir: solrhome目录下的实例类目
    dataDir:默认填data即可
    config:指定配置文件,zhaoyl_code/conf/solrconfig.xml
    schema:指定schema.xml文件,zhaoyl_code/conf/schema.xml(实际上是managed-schema文件)
    注意:红色框内的内容,instanceDir and dataDir need to exist before you can create the core
    要求在创建solr核心时,instanceDir实例目录在sold home 中存在
    如果instanceDir实例目录不存在,点击添加会有如下提示,但会在solr/home中多一个instanceDir实例目录


2)将solr7home/configsets/sample_techproducts_configs/目录下的conf 拷贝到zhaoyl_code 目录下,目录结构:zhaoyl_code/conf/

b.将contrib目录,dist目录拷贝到solrhome目录中


 3)修改solrconfig.xml文件,指定solr contrib 和dist的位置


4)刷新页面,出现如下图所示则表示成功


4、导入数据

1)点击Dataimport 时,出现The solrconfig.xml file for this index does not have an operational DataImportHandler defined!
解决如下:

    复制sorl7home/dist/solr-dataimporthandler*.jar和mysql的jdbc驱动mysql-connector-java-5.1.42.jar(需自己网上下载) 到tomcat的webapps/solr7/WEB-INF/lib/下


2)配置DataImportHandler

<requestHandler name="/dataimport" class="solr.DataImportHandler">
	<lst name="defaults">
		<str name="config">my-data-config.xml</str>
		  <!--<str name="update.chain">uuid</str>    -->
	</lst>
</requestHandler>


3)在D:\Program Files\solr7Home\zhaoyl_core\conf下添加my-data-config.xml 

<?xml version="1.0" encoding="UTF-8"?> 
<dataConfig>
    <dataSource name="source-materail" type="JdbcDataSource"
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://127.0.0.1:3306/zhaoyl_material"
              user="zhaoyl"
              password="zhaoyl" />
    <document>
        <entity name="cosmetic_comment" dataSource="source-materail" pk="id"
            query="select id,cosmetic_id, uid_wechat,uid,user_name,nick_name,create_time,update_time, content,content_view,auditor,audit_time,audit_state,filter_flag,state from cosmetic_comment">
            <field column='id' name='id' />
            <field column='cosmetic_id' name='cosmetic_id' />
            <field column='uid_wechat' name='uid_wechat' />
            <field column='uid' name='uid' />
			<field column='user_name' name='user_name' />
			<field column='create_time' name='createtime' dateTimeFormat='yyyy-MM-dd HH:mm:ss' />
			<field column='update_time' name='update_time' dateTimeFormat='yyyy-MM-dd HH:mm:ss' />
			<field column='content' name='content' />
			<field column='content_view' name='content_view' />
			<field column='auditor' name='auditor' />
			<field column='audit_time' name='audit_time' />
			<field column='audit_time' name='audit_time' />
			<field column='filter_flag' name='filter_flag' />
			<field column='state' name='state' />
        </entity>
    </document>
</dataConfig>


4)重启tomcat,出现下图则配置成功:


5)添加数据库中对应的Field(注意solr已经存在的field 不需要添加 ,具体可在managed-schema中查看已有的field),

     然后数据才能完整的导入。否则导入数据进行query 查询的时候只有id ,_version_两个字段。


6)数据导入

   Command:full_import:全量导入;delta_import:增量导入。
   Clean:在索引开始构建之前是否删除之前的索引,默认为true
   Commit:在索引完成之后是否提交。默认为true
   Execute:执行导入
   Refresh Status:刷新后才能看到数据发生了变化(点一次刷新一次)
   选择 全量导入,Execute执行,Refresh Status刷新查看状态,其他都选默认即可。


5、配置中文分词器ikanalyzer (ik-analyzer-solr5-5.x.jar)

1)将ik-analyzer-solr5-5.x.jar这个jar包放入solr7项目下的WEB-INF\lib目录中去,将IKAnalyzer.cfg.xml,mydict.dic(搜狗的扩展词库),stopword.dic放在solr项目下的WEB-INF\classes目录中去。




2)配置中文分词器

<!--text  Chinese -->
    <fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
      </analyzer>
    </fieldType>
<!-- ikanalyzer 中文分词器-->	
<fieldType name="text_ik" class="solr.TextField">  
	<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>  
</fieldType>  


3)测试分词器效果(ikanalyzer分词器效果明显更好)

ikanalyzer 分词器


solr自带smart分词器


猜你喜欢

转载自blog.csdn.net/liangzhiming12/article/details/80095850