solr的使用总结

solr的安装:

  1. 下载solr-4.10.3.zip并解压 下载网址:https://lucene.apache.org/solr/
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    其解压如下:
    在这里插入图片描述
    注:需要安装tomcat以及jdk
  2. 将solr-4.10.3/dist目录下的solr-4.10.3.war放到tomcat的webapps目录下并修改为solr.war
  3. 启动tomcat,war包会自动解压,然后关闭tomcat,删除solr.war
  4. 将solr-4.10.3/example/lib/ext目录下的jar包全部复制到tomcat/webapps/solr/WEB-INF/lib目录下
  5. 修改tomcat/webapps/solr/WEB-INF目录下的web.xml文件,第43行(该路径为solr解压路径,也可以选择创建文件夹然后把example/solr整个复制到创建的文件夹内,然后指定新文件夹路径+"\solr")
<env-entry>
   <env-entry-name>solr/home</env-entry-name>
   <env-entry-value>C:\Users\18702\Desktop\Solr\solr-4.10.3\example\solr</env-entry-value>
   <env-entry-type>java.lang.String</env-entry-type>
</env-entry>
  1. 重启tomcat

IK分词器的安装:

  1. 下载IK Analyzer 2012FF_hf1.zip并解压
  2. 链接: https://pan.baidu.com/s/1SEe3nGVCSqk85WpjY58u4w 提取码: edc5
    在这里插入图片描述
  3. 将IKAnalyzer2012FF_u1.jar放到tomcat/webapps/solr/WEB-INF/lib目录下
  4. 在tomcat/webapps/solr/WEB-INF目录创建文件夹classes并将IKAnalyzer.cfg.xml与stopword.dic放到该目录下
  5. 修改collection1/conf目录下的schema.xml,添加如下配置
<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>
  1. 重启tomcat即可
  2. 效果如下图所示:
    在这里插入图片描述
  3. 添加拓展字典:
    a. 修改tomcat/webapps/solr/WEB-INF/classes目录下的IKAnalyzer.cfg.xml如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
<properties>  
	<comment>IK Analyzer 扩展配置</comment>
	<!--用户可以在这里配置自己的扩展字典 
	-->
	<entry key="ext_dict">mydic.dic;</entry> 
	<!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords">stopword.dic;</entry> 
	
</properties>

b. 在tomcat/webapps/solr/WEB-INF/classes目录创建mydic.dic文件,内容可按需求自行添加

DateImportHandler插件安装:

  1. 在collection1目录下创建文件夹lib,并添加如下jia包:solr-4.10.3/dist/solr-dataimporthandler-4.10.3.jar、solr-4.10.3/dist/solr-dataimporthandler-extras-4.10.3.jar以及mysql驱动包如:
    mysql-connector-java-5.1.47.jar
  2. 在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>
  1. 在collection1/conf目录创建配置文件data-config.xml并添加如下配置:
<?xml version="1.0" encoding="UTF-8" ?>
  <dataConfig>
      <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://***.**.***.***:3306/****" user="root" password="123456"/>
      <document>
          <entity name="product" query="select tg.id as id,tgt.first_type as firstType,tgt.second_type as secondType,tg.title as title,tg.current_price as price,tg.img as img,IFNULL(tg.sales_volume,0) as salesVolume,tg.show_time as showTime,tg.labels as labels,tgb.`name` as name,IFNULL(tgc.num,0) as num from t_goods tg LEFT JOIN t_goods_type tgt ON tg.type_id = tgt.id LEFT JOIN t_goods_brand tgb on tg.brand_id = tgb.id LEFT JOIN (select t.goods_id,COUNT(1) as num from t_goods_comment t where t.is_show = '1' GROUP BY t.goods_id) tgc ON tg.id = tgc.goods_id">
              <field column="id" name="id"/>
              <field column="firstType" name="product_first_type"/>
              <field column="secondType" name="product_second_type"/>
              <field column="title" name="product_title"/>
			  <field column="price" name="product_price"/>
			  <field column="img" name="product_img"/>
			  <field column="salesVolume" name="product_salesVolume"/>
			  <field column="showTime" name="product_showTime"/>
			  <field column="labels" name="product_label_name"/>
			  <field column="name" name="product_name"/>
			  <field column="num" name="product_num"/>
         </entity>
     </document>
 </dataConfig>

配置内容根据实际情况自行配置,field中column是数据库中查询出的内容,name则是对应的域,这个可在collection1/conf目录下的schema.xml中进行配置,我的schema.xml配置内容如下:

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

<field name="product_first_type" type="text_ik" indexed="true" stored="true"/>
<field name="product_second_type" type="text_ik" indexed="true" stored="true"/>
<field name="product_title" type="text_ik" indexed="true" stored="true"/>
<field name="product_price" type="float" indexed="true" stored="true"/>
<field name="product_img" type="string" indexed="true" stored="true"/>
<field name="product_salesVolume" type="int" indexed="true" stored="true"/>
<field name="product_showTime" type="date" indexed="true" stored="true"/>
<field name="product_label_name" type="string" indexed="true" stored="true"/>
<field name="product_name" type="text_ik" indexed="true" stored="true"/>
<field name="product_num" type="int" indexed="true" stored="true"/>

<field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="product_first_type" dest="product_keywords"/>
<copyField source="product_second_type" dest="product_keywords"/>
<copyField source="product_title" dest="product_keywords"/>
<copyField source="product_name" dest="product_keywords"/>
<copyField source="product_label_name" dest="product_keywords"/>
  1. 重启tomcat
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值