Solr的搭建

Posted 坐地铁的程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solr的搭建相关的知识,希望对你有一定的参考价值。

Solr 安装

准备阶段

  • 因为这是在linux环境搭建,所以事先要把java的运行环境搭建好

  • 到http://www.apache.org/dyn/closer.lua/lucene/solr/7.2.1下载solr,我们这里用的是solr4.9

  • 到https://tomcat.apache.org/download-70.cgi下载tomcat,我们这里用的是tomcat7。

  • 到https://www.mysql.com/downloads/下载mysql,我们这里用的版是5.6。
    (如何安装jdk,tomcat,mysql,这里不做讲解,如果不会这些还是先学习一下)


    后方多图

开始安装

1.这是我的tomcat的安装路径

2.把solr的war包拷贝的当前tomcat的webapps目录下面。这里简单说一下solr.war在我们下载的solr的dis目录,如下

Solr的搭建

这里solr-4.9.0.war,所以当我们拷贝到tomcat的webapps目录后要把它重命名为solr.war,其实不重命名也是可以的,为了看着舒服就重命名一下。

3.接下来我们不妨试着启动一下tomcat,进入到tomcat的bin目录,执行./startup.sh命令,如下图

Solr的搭建

我们可以试着去访问一下http://172.19.26.221:8080/solr(172.19.26.221是linux的ip,替换成自己的linux的ip即可),不出所料报了404,如下图

Solr的搭建

我们可以看一下tomcat的启动日志,如下图

Solr的搭建

其中的信息说明solr启动失败了。启动失败的原因是因为缺少了一些solr的jar包,我们到我们下载的solr的/usr/local/services/solr/solr-4.9.0/example/lib/ext目录下,把当前目录下的所有jar包复制到/usr/local/services/tomcat-solr/lib目录下,然后再启动tromcat,记得启动之前一定先停掉tomcat。启动起来之后,再次访问http://172.19.26.221:8080/solr,得到如下结果

Solr的搭建

很明显这是说solr启动需要一个collection1,但是我们没有配置。这是我们到/usr/local/services/tomcat-solr目录下创建一个solrhome文件夹(这个路径和文件夹名可以根据自己的喜好来创建,但是必须创建),然后到下载的solr的/usr/local/services/solr/solr-4.9.0/example/solr目录下,把该目录下的collection1文件夹复制到刚才创建的solrhome下。并且要把/usr/local/services/solr/solr-4.9.0/example/solr目录下的solr.xml复制到solrhome下,要不然我们自己创建的core在每次solr重启之后就得重新添加。

这时候启动还是有问题的,因为我们还没有告诉solr,collection1在哪,我们到/usr/local/services/tomcat-solr/webapps/solr/WEB-INF目录,修改web.xml文件,如下

Solr的搭建

这一段默认是注释的,我们放开,然后把红色部分改成刚才创建的solrhome的绝对路径。然后保存,启动。

Solr的搭建

这时候就看到启动成功了,并且在core Selector下面能看到刚才添加的collection1,选中collection1,然后点击Query,如下图

Solr的搭建

因为我们没有给collection1添加任何的文档,所以查不到任何的数据,我们不妨来手动添加点数据

Solr的搭建

点击submit document,保存,然后切换到query菜单,点击query就可以查到添加的数据了

Solr的搭建

在实际当中我们更多的是让solr从数据库中拉取数据,所以接下来创建我们自己的core,进入到/usr/local/services/tomcat-solr/solrhome,然后创建一个member的文件夹,然后到下载的solr的/usr/local/services/solr/solr-4.9.0/example/example-DIH/solr/solr目录,把该目录下的conf文件夹复制到刚才创建的member。并且我们要把log4j的配置文件复制过来,要不然看不到solr的日志,我们到/usr/local/services/tomcat-solr/webapps/solr/WEB-INF目录创建classes文件夹,并且到下载的solr的/usr/local/services/solr/solr-4.9.0/example/resources路径下,把log4j.properties复制到刚才创建的classes文件夹下,这样tomcat启动后就可以看到solr的日志了。

4.并且插入数据,如下接着我们在数据库上首先创建一张表m_member,表结构如下

CREATE TABLE `m_member` (
`ID` CHAR(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '主键',
`username` VARCHAR(100) DEFAULT NULL,
`MOBILE` VARCHAR(200) DEFAULT NULL COMMENT '手机号',
PRIMARY KEY (`ID`)
) ENGINE=INNODB DEFAULT CHARSET=utf8COMMENT='会员'

并且插入数据,如下

Solr的搭建

5.接下来修改memer/conf下的schema.xml文件,如下

Solr的搭建

Schema标签的name属性要和我们刚才创建的member相同。接着在修改该文件内的file标签,如下

Solr的搭建

只留上图的filed,其他的field全部删除,接着在修改copyField标签,如下图

Solr的搭建

只留如下的copyField,其他的全部删除,保存。

6.接在来配置数据库信息,修改solr-data-config.xml,如下

Solr的搭建

其中FEDERATEDDS是我们的JNDI的数据源名称,那我们接下来要配置jndi

7.修改/usr/local/services/tomcat-solr/conf文件夹下的context.xml文件,如下图

Solr的搭建

8.其中password是我的密码经过加密的,加密方式是,把druid-0.2.23.jar上传到/usr/local/services/tomcat-solr/lib目录,因为要连接mysql,所以mysql得驱动尤其是必不可少的,把mysql-connector-java-5.1.29.jar上传到该目录,该目录如下

Solr的搭建

9.然后在该目录执行如下命令来加密数据库密码java -cp druid-0.2.23.jarcom.alibaba.druid.filter.config.ConfigTools you_password 即输出加密后密码,如下图,

Solr的搭建

这样就可以了。这是启动tomcat,然后就可以在core selector下查询到了,选择member,因为现在还没有数据,所以需要导入solr,选择Dataimport导入数据,如下图

不出问题的数据马上就导入,然后选择Query,就可以看到数据了,如下图

到此solr的搭建就完成了。

以上是关于Solr的搭建的主要内容,如果未能解决你的问题,请参考以下文章

在 solr 3.4 中放置突出显示片段配置的位置

用Intellij idea搭建solr调试环境

Solr 高亮是不是还可以指示返回的片段在原始字段中的位置或偏移量?

Solr Highlighting:如何为同一字段请求多个片段长度?

Solr集群搭建详细教程

solr的搭建与配置