solr6.5安装教程

来源:互联网 发布:三维设计软件手机版 编辑:程序博客网 时间:2024/06/05 22:40

最近一个人无聊搞搜索
如果对上亿条数据进行全文本搜索,使用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

加入:

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

<libdir="${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的话在下一篇文章讲。



原创粉丝点击