Solr单机版的安装及配置

实验环境

  • jdk1.8.0_40 64位
  • tomcat 7.0.76 64位
  • solr-4.10.3
    (如果是新版本的 solr 必须使用tomcat8+)

什么是solr

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引 。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

安装

  1. 将solr-4.10.3\example\webapps 下的solr.war 包 放到tomcat/webapps 下解压为solr
  2. 将solr-4.10.3\example\lib\ext 下面的所有jar包 复制到tomcat 的solr/web-inf/lib 下面
  3. 将solr-4.10.3\example\resources 的log配置文件放到tomcat solr应用的WEB-INF/classes 下面 (没有的话新建一个)
  4. 配置solrhome目录
    复制solr-4.10.3\example\solr 到 tomcat的solr下面 并改名为solrhome
    配置web.xml 指定solrhome的目录
去掉该标签的注释
    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>D:\apache-tomcat-7.0.76\webapps\solr\solrhome</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

配置IK分词器

  1. 导入IKjar包
  2. 导入配置文件IKAnalyzer.cfg.xml 到classes
  3. 配置schema.xml 添加如下代码
<fieldType name="text_ik" class="solr.TextField">
  <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
随便添加一个field 用于测试分词效果
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
  1. 测试分词器
    这里写图片描述

连接接数据库 导入数据

  1. 将solr-4.10.3\dist\solr-dataimporthandler-4.10.3.jar 和solr-dataimporthandler-extras-4.10.3.jar
    复制到tomcat 的solr/web-inf/lib 下面 并导入数据库驱动
    2.配置solrconfig.xml
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">   
          <lst name="defaults">   
          在当前目录下建立data-config.xml
               <str name="config">data-config.xml</str>   
          </lst>   
    </requestHandler> 
  1. 在当前目录下建立data-config.xml
<?xml version="1.0" encoding="UTF-8" ?>  

<dataConfig>   
  <dataSource type="JdbcDataSource"   
              driver="com.mysql.jdbc.Driver"   
              url="jdbc:mysql://127.0.0.1:3306/taotao?characterEncoding=UTF-8"
              user="root"   
              password="root"/>   
  <document>   
        <entity name="id" query="select id, title, sell_point, price from tb_item">
        <field column="id"  name="id"/>
        field column 对应的是数据库字段  name对应的域
            <field column="title" name="item_title" />
            <field column="sell_point" name="item_sell_point" />
             <field column="price" name="item_price" />
        </entity>   
  </document>   

</dataConfig>
  1. schema.xml 配置域
<fieldType name="text_ik" class="solr.TextField">
  <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price"  type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_desc" type="text_ik" indexed="true" stored="false" />

<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
<copyField source="item_desc" dest="item_keywords"/>
  1. 导入数据
    这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值