专栏首页喵了个咪的博客空间Solr搜索引擎 — 两种安装方式

Solr搜索引擎 — 两种安装方式

常常在业务开发中会遇到大列表的查询需求或者按照各项条件搜索内容,一般的做法往往都是数据库直接搞定,但是到了一定的程度只有这类需求会带来巨大的开销,一个表格中涉及到了5张表的数据,搜索要求从其中3张表的不同字段做到模糊查询,如果还用传统的方式实现起来就很有难度了逻辑和数据库性能就是一个考验,要是如果在A表一个字段是很长的text需要模糊匹配,在B表需要用简拼音搜索,那就难上加难了,solr恰巧就解决了这些问题。

附上:

喵了个咪的博客:http://w-blog.cn

Solr官网:http://lucene.apache.org/solr/

PS:8.0.0版本已经发布,本文使用此时较为稳定的7.7.1版本

一,Solr对比Elasticsearch

一般要提到索引运用比较多的自然是ES,有着良好的性能,

Sola特点:

  • 通过zookeeper进行集群管理
  • 支持丰富的数据源,可以直接使用mysql作为数据源
  • 和hadoop生态结合较好,可以索引文件直接落入hdfs可以实现无限扩容
  • 自带查询功能强大,新手都能很容易上手

Elasticsearch特点:

  • 效率快,自带一些图表分析的功能
  • restful的查询方式
  • 可以通过Logstash来支持mysql数据源

Solr和Elasticsearch主要区别:

  • Solr原生支持mysql数据源,ES需要Logstash来扩展支持(虽然都是一家的产品)
  • Elasticsearch在数据量较多的情况下速度比Solr快
  • 数据源Solr支持的更好,ES只支持json数据源
  • 集群上SolrCloud比较ES简单
  • 分词上都支持中文和拼音分词
  • Solr webUI更方便观察服务运行情况和调试索引

二、环境准备和solr启动

安装tomcat和jdk1.8

> wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --tomcat_option 2 --jdk_option 2 --reboot 

下载solr配置好环境变量

> mkdir /app/install && cd /app/install
> wget http://mirrors.shu.edu.cn/apache/lucene/solr/7.7.1/solr-7.7.1.tgz
> tar -zxvf solr-7.7.1.tgz
> mv solr-7.7.1 /usr/local/
> vim /etc/profile

export PATH=/usr/local/solr-7.7.1/bin:$PATH

> source /etc/profile

启动solr

> solr start

WARNING: Starting Solr as the root user is a security risk and not considered best practice. Exiting.
         Please consult the Reference Guide. To override this check, start with argument '-force'

> solr start -force

Waiting up to 180 seconds to see Solr running on port 8983 [\]  
Started Solr server on port 8983 (pid=8773). Happy searching!

PS:Solr自带jetty可以不依赖tomcat直接启动

通过访问8983端口就可以进入到webui

三、配置tomcat启动solr

虽然直接启动也可以,但是通过tomcat的方式更加可控为了后续的集群配置也更加推荐。

PS:通过oneinstack安装的tomcat的根目录在</data/wwwroot/default>下面

在tomcat包下的webapps目录新建一个目录,取名solr

> cd /data/wwwroot/default
> mkdir solr
  • 将solr解压包/solr-7.7.1/server/solr-webapp/webapp/下的内容拷贝到刚才tomcat下新建的文件夹solr中
  • 将/solr-7.7.1/server/lib/ext/下的jar包拷贝到/tomcat/webapps/solr/WEB-INF/lib/下
  • 将/solr-7.7.1/server/lib/下metrics开头的jar包也拷贝到刚才的目录下
  • 将/solr-7.7.1/dist/下 solr-dataimporthandler-extras-7.7.1.jar、solr-dataimporthandler-7.7.1.jar也拷贝到刚才的目录下
> cp -rf /usr/local/solr-7.7.1/server/solr-webapp/webapp/* /data/wwwroot/default/solr
> cp -rf /usr/local/solr-7.7.1/server/lib/ext/* /data/wwwroot/default/solr/WEB-INF/lib
> cp -rf /usr/local/solr-7.7.1/server/lib/metrics-* /data/wwwroot/default/solr/WEB-INF/lib
> cp -rf /usr/local/solr-7.7.1/dist/solr-dataimporthandler-extras-7.7.1.jar /data/wwwroot/default/solr/WEB-INF/lib
> cp -rf /usr/local/solr-7.7.1/dist/solr-dataimporthandler-7.7.1.jar /data/wwwroot/default/solr/WEB-INF/lib
  • 在你本地的/home下新建一个文件夹,取名solr-home,将/solr-7.7.1/server/solr下的内容拷贝到刚才新建的solr-home下
> mkdir /home/solr-home
> cp -rf /usr/local/solr-7.7.1/server/solr/* /home/solr-home/
  • 打开并编辑/tomcat/webapps/solr/WEB-INF/web.xml并且注释文件末尾的所有 <security-constraint> 元素节点
> vim /data/wwwroot/default/solr/WEB-INF/web.xml

<env-entry>
      <env-entry-name>solr/home</env-entry-name>
      <env-entry-value>/home/solr-home</env-entry-value>
      <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

<!--
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Disable TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method>TRACE</http-method>
    </web-resource-collection>
    <auth-constraint/>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Enable everything but TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method-omission>TRACE</http-method-omission>
    </web-resource-collection>
  </security-constraint>
-->

配置solr日志(可选) 将/solr-7.7.1/server/resources/下的log4j2.xml文件拷贝到solr/WEB-INF/classes/下,如果没有则自己创建一个。

分别给予权限

> chown -R www:www /home/solr-home/
> chown -R www:www /data/wwwroot/default/solr/

访问对应端口即可

http://172.16.2.75:8080/solr/index.html#/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Solr搜索引擎 — 通过mysql配置数据源

    上一节我们已经通过两种方式运行了solr,本节演示怎么配置solr的mysql数据源

    喵了个咪233
  • Solr搜索引擎 — 查询命令和两种中文分词使用

    已经和mysql建立好了关联,可以查询和更新mysql的数据量,接下来就是进阶的使用方式了

    喵了个咪233
  • zephir-(7)数组

    #zephir-数组# ? ##前言## 先在这里感谢各位zephir开源技术提供者 在java和c++中几乎所有的操作都是正对于类开展的,但是在php中你们常...

    喵了个咪233
  • solr install

         Solr是一个独立的企业及搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的...

    week
  • (二)Solr的安装配置及部署

    qubianzhong
  • Solr_全文检索引擎系统

    Solr介绍: Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务。Solr可以独立运行在Jetty、Tomca...

    赵小忠
  • solr初探-安装使用

    Solr是一个高性能,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优...

    kl博主
  • solr安装配置

    环境介绍 solr 6.5.1 tomcat8 jdk1.8

    似水的流年
  • solr安装配置

    环境介绍 solr 6.5.1 tomcat8 jdk1.8 一、下载solr安装包 下载地址:http://www.apach...

    似水的流年
  • Apache solr(一).

    概念:Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。Apache...

    JMCui

扫码关注云+社区

领取腾讯云代金券