• Solr 01


    1 Solr概述

    1.1 Solr是什么

    Solr是Apache软件基金组织旗下的一个顶级开源项目, 是基于Lucene的全文搜索服务, 是一个独立的企业级搜索应用服务器, 可以独立运行于Jetty, Tomcat等Web容器中.

    使用Solr可以很方便地实现全文索引和搜索功能, 比如:

    (1) 创建索引

    客户端可以通过HTTP的post方法向Solr服务器发送一个描述Field及其内容的XML文档(或JSON格式的串), Solr服务器根据XML文档添加、更新、删除索引;

    (2) 搜索索引

    客户端可通过HTTP的get方法向Solr服务器发送请求, 对Solr服务器返回的XML、JSON格式的结果进行解析.

    Solr不提供构建页面UI的功能, 它提供了一个管理页面, 通过管理页面可以查询Solr的配置和运行情况.

    1.2 Solr与Lucene的区别

    Lucene是一个开放源代码的全文检索引擎工具包, 提供了完整的索引引擎和查询引擎功能, 目的是为开发人员提供一个简单易用的工具包, 以方便在目标系统中实现全文检索的功能, 或以Lucene为基础构建全文检索应用. 它不是一个完整的服务, 不能独立运行.

    **Solr的目标是打造一款企业级的搜索引擎系统. 它是基于Lucene构建的全文检索服务, 是一个完整的服务, 可独立运行于Web容器中. **

    **通过Solr可以快速构建企业级的搜索引擎, 也可高效地完成站内搜索功能. **

    图片

    2 Solr文件说明

    2.1 Solr的目录结构

    (1) 下载Solr安装包:

    下载地址: http://archive.apache.org/dist/lucene/solr

    说明: Solr与Lucene在3.x版本后开始同步更新, 这里使用4.10.4版本(从Solr 5.x开始要求JDK必须是1.8及以上).

    (2) Solr安装包目录说明:

    图片

    | bin: Solr的运行脚本
    | contrib: Solr的扩展jar包, 用于增强Solr功能
    | dist: build过程中生成的war和jar文件, 以及其他依赖文件
    | docs: Solr的API文档
    | example: Solr工程的示例目录
    ​ --- | solr: 标准的SolrHome, 包含一个默认的SolrCore(即collection1)
    ​ --- | multicore: 包含了在Solr的multicore中设置的多个Core目录
    ​ --- | webapps: 包含了一个solr.war, 该war包可作为Solr的运行示例工程(这里部署的Solr服务就使用它)
    | licenes: Solr相关的许可信息

    2.2 其他常用概念说明

    SolrHome目录是Solr服务运行的主目录:

    一个SolrHome目录可包含多个SolrCore.

    SolrCore目录中包含了运行Solr实例的配置文件和数据文件(日志和索引文件).

    每一个SolrCore提供独立的索引和搜索服务.

    2.3 创建基础文件目录

    (1) 建立work目录(作为SolrHome根目录);

    (2) 将Solr解压目录中的solr目录, 拷贝至work目录下;

    此时SolrHome(即solr, 为方便可改名为solrhome)和SolrCore(即collection1)的目录结构如下:

    图片

    说明:

    conf: SolrCore运行的配置信息;

    data: SolrCore存放日志和索引文件的目录;

    core.properties: SolrCore的信息, 如名称等, 在Solr运行时创建.

    2.4 solrconfig.xml文件说明

    说明: solrconfig.xml文件位于SolrCore的conf目录下, 通过solrconfig.xml可以配置SolrCore实例的相关信息, 可不作修改.

    企业项目开发中需要修改三个常用的标签: lib标签、datadir标签、requestHandler标签.

    详细说明请参见: Solr 02 - 最详细的solrconfig.xml配置文件解读

    2.5 schema.xml文件说明

    说明: schema.xml文件在SolrCore的conf目录(即collection1/conf)下, 主要用于配置Solr的域(Field)以及域的类型(FieldType).

    在Solr中, 域要先配置再使用.

    详细说明请参见: Solr 03 - Solr的模式设计与优化 - 最详细的schema.xml模式文件解读

    版权声明

    作者: 马瘦风

    出处: 博客园 马瘦风的博客

    您的支持是对博主的极大鼓励, 感谢您的阅读.

    本文版权归博主所有, 欢迎转载, 但请保留此段声明, 并在文章页面明显位置给出原文链接, 否则博主保留追究相关人员法律责任的权利.

  • 相关阅读:
    JS中常遇到的浏览器兼容问题和解决方法
    遍历
    深度克隆和浅拷贝
    js数据类型
    js运算符
    理解js中的事件模型
    常见事件总结
    模板方法模式
    适配器模式和外观模式
    命令模式
  • 原文地址:https://www.cnblogs.com/shoufeng/p/9463894.html
Copyright © 2020-2023  润新知