solr服务的安装与配置

1.到Apach官方下载对应的tgz包。

2.解压tgz包,获取/example/lib/ext目录下的所有jar包,添加到自定义solr工程的WEB-INF/lib包下。

3.创建一个solrhome目录(管理solr服务的),可以参考/example下的solr目录,该目录就是一个solrhome的实例。

4.进入solr项目,修改WEB-INF下的web.xml文件。(修改env-entry-value指向的路径为solrhome的location)

 <env-entry>//环境入口
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>E:\SolrHome</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

5.0配置solr的业务域

solrhome/collection1/conf/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"/>

5.1配置业务域涉及到分词器的配置

   5.1.1将分词器jar包添加到自定义solr工程WEB-INF/lib/下

   5.1.2将扩展词典添加到/WEB-INF/build/classes/下(一般分词器都有配置文件,例如IKAnalyzer的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">ext.dic;</entry>
    -->
    <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords">stopword.dic;</entry>
    
</properties>

stopword.dic内容如下

a
an
and
are
as
at
be
but
by
for
if
in
into
is
it
no
not
of
on
or
such
that
the
their
then
there
these
they
this
to
was
will
with

6.0solr索引的增量导入

将pache-solr-dataimportscheduler-1.0.jar下的dataimport.properties复制出来

 并根据实际情况修改,然后放到 solrhome/conf 目录下面,该目录是没有的,需要新建

1、将 apache-solr-dataimportscheduler-1.0.jar 和solr自带的 apache-solr-dataimporthandler-.jar, apache-solr-dataimporthandler-extras-.jar 放到solr的lib目录下面 
2、修改solr中WEB-INF/web.xml, 在servlet节点前面增加:
 <listener>  
          <listener-class>  
                org.apache.solr.handler.dataimport.scheduler.ApplicationListener  
          </listener-class>  
</listener>


6.1solr索引的全量导入

拷贝mysql-connector-java-x.x.xx-bin.jar和solr-dataimporthandler-x.xx.x.jar到自定义solr项目的WEB_INF/lib/下

修改\SolrHome\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>

data-config.xml内容

<?xml version="1.0" encoding="UTF-8" ?>  
<dataConfig>   
<dataSource type="JdbcDataSource"   
          driver="com.mysql.jdbc.Driver"   
          url="jdbc:mysql://localhost:3306/solr"   
          user="root"   
          password="root"/>   
<document>   

    <entity name="product" query="SELECT pid,name,catalog_name,price,description,picture FROM products ">

//query="select * from prodcts limit ${dataimporter.request.length} offset ${dataimporter.request.offset}">可以实现按时间批量导入,
//不过数据库表要新添加对应字段,并且需要在dataimporter.properties中配置对应的length和offset
//也可以这样 updateTime> '${dataimporter.last_index_time}'

         <field column="pid" name="id"/>
         <field column="name" name="product_name"/>
         <field column="catalog_name" name="product_catalog_name"/>
         <field column="price" name="product_price"/>
         <field column="description" name="product_description"/>
         <field column="picture" name="product_picture"/>
    </entity>   
</document>   

</dataConfig>


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值