solr6.5安装教程


最近一个人无聊搞搜索
如果对上亿条数据进行全文本搜索,使用sql语句肯定是不行的,时间非常差。我尝试了对10w条数据进行检索,1秒。mysql数据库+i7。所以对于海量数据的全文本检索肯定是不行的,然后找啊找。就发现了有搜索引擎这种东西。主流的有sphinx和solr。在这篇文章上有它们之间的比较

最后选定了solr,因为刚开始学习搜索引擎,当然是资源多的比较好入门啦。sphinx的性能很好,但是资源太少了,百度出来的相关内容就两页。所以还是先从solr入手。

网上很多教程,但是呢,很多人写的很水,因为很多人都是抄袭的,根本就没有自己做过,有什么问题都不清楚。所以我在这里就写多一篇,如果大家觉得有用就看看吧,没用的话我就当是自己的笔记。

我的系统是MacOs,如果你的是linux或者是windows的也可以看,其实都差不多的,只是路径有点区别。

我选用的是solr6.5.0 + Tomcat8.0  

切记,如果用Solr6的话最好用Tomcat8 要不然你会后悔的

因为tomcat7上的javax-servlet和Solr6的jar包冲突了!所以,如果你想用tomcat7的话就老老实实的用Solr5。解决的方法也有,但是太浪费时间,所以我选择把时间花在Solr的学习上。

  1. 安装

如果是mac的话,直接在终端上输入 brew install solr

然后等待安装完成。如果brew指令不存在,那就是你没有安装brewhome,百度一下brew的安装方法。

如果是windows的话就上Solr官网下载。

2.启动

安装完成后启动solr    solr star

返回以下文字提示,则表示 solr 服务器安装成功,默认监听的端口号为 8983:

Waiting up to 30 seconds to see Solr running on port 8983 [\]

Started Solr server on port 8983 (pid=890). Happy searching!

在浏览器中访问

Solr 提供了可视化管理界面Solr Admin,默认的访问URL为: http://localhost:8983/solr/



3.创建核心。

终端输入   solr  create  -c  test     test:核心的名字

会发现多了一个test文件夹。在http://localhost:8983/solr/的Core Selector也可以选择test核心

4.链接数据库进行查询。

首先安装好mysql。别的数据库也行,就是配置data-config.xml 有点不同而已。

然后添加以下数据

create table goods(id int not null auto_increment, name varchar(20) not null default '', number varchar(20) not null default '', updateTime timestamp not null default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, primary key(id));

insert into goods(name, number)  values('鞋子', 100);

insert into goods(name, number)  values('衣服', 200);

insert into goods(name, number)  values('裤子', 300);

添加完成后,这里要配置的主要就三个文件。

/solr/6.5.0/serever/solr/test/conf/solrconfig.xml

/solr/6.5.0/serever/solr/test/conf/managed-schema 

/solr/6.5.0/serever/solr/test/conf/data-config.xml    (这个没有的话要新建)


5.配置solrconfig.xml

首先,把mysql-connector-java-5.0.8-bin.jar

   solr-dataimporthandler-6.5.0.jar

   solr-dataimporthandler-extras-6.5.0.jar

   放入  /solr/6.5.0/libexec/dist   内,

    然后修改 solrconfig.xml

加入:

<lib dir="${solr.install.dir}/libexec/dist/" regex="mysql-connector-java-5.0.8-bin.jar" />(这里我用5.1.7的时候报错,所以改成5.0.8)

<lib dir="${solr.install.dir}/libexec/dist/" regex="solr-dataimporthandler-.*\.jar" />

6.添加 MySQL 配置信息

在<requestHandler name="/select" class="solr.SearchHandler">的前面添加以下信息:

<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 name="source1"
    type="JdbcDataSource"
    driver="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/mariadb"
    user="root"
    password="123456"
    batchSize="-1"/>
    <document>
        <entity name="goods"
            pk="id"
            dataSource="source1"
            query="select * from  goods"
            deltaImportQuery="select * from goods where id='${dih.delta.id}'"
            deltaQuery="select id from goods where updateTime> '${dataimporter.last_index_time}'">
            <field column="id"
            name="id"/>
            <field column="name"
            name="name"/>
            <field column="number"
            name="number"/>
            <field column="updateTime"
            name="updateTime"/>
        </entity>
    </document>
</dataConfig>

url="jdbc:mysql://localhost:3306/mariadb"
    user="root"
    password="123456"

最后修改managed-shema添加

<field name="name" type="string" indexed="true" stored="false" />

<field name="number" type="int" indexed="true" stored="false" />

<field name="updateTime" type="date" indexed="true" stored="false" />


最后重启:solr restart


7.查询



Entity选择 goods

然后点击Execute就可以添加索引




点击Execute Query就可以搜索了。

部署到tomcat的话在下一篇文章讲。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值