热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

企业级搜索应用服务器Solr4.10.4部署开发详解(1)-Solr入门-安装部署

(一)Solr入门-安装部署1.缘起-方案公司开发的商品交易系统需要提供用户商品实时搜索,商户商品实时发布。使用Mysql+Redis出了第一版后,发现如果查询条件
(一) Solr入门-安装部署   

1. 缘起 - 方案

    公司开发的商品交易系统需要提供用户商品实时搜索,商户商品实时发布。使用Mysql + Redis出了第一版后,发现如果查询条件复杂的情况下,要创建多个redis排序集合,维护起来非常困难,开发以后也会非常复杂,虽然解决性能问题,但是研发、维护的业务逻辑复杂度暴增。

     为了解决业务逻辑复杂性、开发维护难度,并保持高性能,架构师提出Solr + MySQL + Redis的解决方案。Solr解决复杂查询和性能的问题,MySQL提供交易记录完整性,Redis解决热点数据缓存问题。

     Solr底层是基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

    根据Solr的特性,配合我们公司的业务大数据量、高并发、高响应的场景,我们设计了一套基础的解决方案。


    Nginx、Redis、MySQL、应用服务器都不是我们这次的重点。我们主要是讲解Solr服务的搭建和配置。下面介绍一下大致的流程。

    (1)Solr单台服务器部署和开发

    (2)Solr Cloud的部署和开发

2. 缘续 - Solr单台服务器部署和开发

(1)下载安装JDK, Tomcat和Solr

        Solr目前版本是5.2.1(http://archive.apache.org/dist/lucene/solr/) ,我们使用的是4.10.4

       Tomcat的版本是tomcat7,由于我使用的环境是JDK1.7版本的,所以用tomcat7,下载地址是(http://archive.apache.org/dist/tomcat/tomcat-7/),当前版本是7.0.63

       Linux环境也需要安装JDK1.7,下载地址  目前版本是 Java SE Development Kit 7u79

       具体如何安装请百度。

(2)安装部署Solr

      1. 将JDK安装完成后,将tomcat和solr的zip包放入/opt目录,进入opt目录,解压tomcat和solr

   


        2. 进入tomcat目录的webapp目录,创建solr目录,然后将/opt/solr-4.10.4/example/webapps/solr.war 拷贝到/opt/apache-tomcat-7.0.62/webapps/solr/目录下,解压



        3. 修改解压后WEB-INF/web.xml内容,将env-entry注释打开,并将当前目录路径配置到env-entry-value中。注意,如果是在eclipse中配置,env-entry-value要放到env-entry-type的下面,要不然会提示错误。


    
solr/home
java.lang.String
       /opt/apache-tomcat-7.0.62/webapps/solr/solr


        4 .拷贝/opt/solr-4.10.4/example/solr/目录到tomcat的webapp/solr目录下

          这样就能明白为什么/opt/apache-tomcat-7.0.62/webapps/solr/solr,的配置中solr目录下还有个solr的原因


        5. 将【slf4j-api-1.6.4.jar】 【commons-logging-1.2.jar】拷贝到solr/WEB-INF/lib目录下

            可能是solr团队的疏忽,如果直接运行项目,会提示solr运行不了,这个问题我在windows环境使用eclipse时发现,项目启动会提示缺少SLF4J的jar包和commons-logging的jar包,将这两个jar包拷贝到lib目录后,就可以启动了。在浏览器中输入ip地址和tomcat的端口号,加上项目名称,就会看到solr主界面了。







/opt/apache-tomcat-7.0.62/webapps/solr/solr

推荐阅读
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • 深入理解Redis中的字典实现
    本文详细介绍了Redis中字典的实现机制,包括其底层数据结构、哈希表与哈希节点的关系、元素添加方法及rehash操作的具体流程。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文深入探讨了如何选择适合业务需求的MySQL存储引擎,详细解析了不同存储引擎的特点、适用场景及其在数据存储和管理中的优势。通过对比InnoDB、MyISAM等主流引擎,为读者提供了全面的技术指导和专业建议,帮助开发者在实际应用中做出明智的选择。 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • 在将Web服务器和MySQL服务器分离的情况下,是否需要在Web服务器上安装MySQL?如果安装了MySQL,如何解决PHP连接MySQL服务器时出现的连接失败问题? ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
author-avatar
熊熊oO7sloveV
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有