Solr是Apache Lucene的一个子项目。Lucene为全文搜索功能提供了完备的API。但它仅仅作为一个API库存在。而不能直接用于搜索。

因此,Solr基于Lucene构建了一个完整的搜索引擎。它能够为搜索引擎加入文档。对文档内容进行分析,并为用户提供搜索功能,在此基础上提供了一个扩展功能,如hit highline, suggetion等。


一、概述

  (一)基础内容
     1、Solr的版本与Lucene的版本保持一直,直到2014年7月,最新版本为4.9.0。

     2、Solr提供了一个example,能够简单高速的搭建起搜索环境。參见http://blog.csdn.net/jediael_lu/article/details/36419497
   (二)配置文件
    Solr的关键配置文件有下面三个:
    solr.xml—Defines properties related to administration, logging, sharding, and SolrCloud 
    solrconfig.xml—Defines the main settings for a specific Solr core
    schema.xml—Defines the structure of your index, including fields and field types
   启动搜索引擎时,server依照下面顺序导入配置:
   (1)从全局java系统属性中查看solr.solr.home,一般定义为:$SOLR_INSTALL/example/solr/。
   (2)搜索上述文件夹中哪个子文件夹中包括有 core.properties,每一个 core.properties相应一个core。
   (3)从 core.properties中找出name属性,其值作为一个core。
    (4)查找这个core以下的conf子文件夹。找到solrconfig.xml与schema.xml。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamVkaWFlbF9sdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt=""> 
 



    1、solr.xml
    与整个搜索引擎相关的配置。
    2、solrconfig.xml。
    与某个core相关的主要配置,如定义updatehandler用于索引文件,requesthandler用于搜索内容等。
       

 
  3、schema.xml
    定义了某类型文档的索引格式。
   4、core.properties
    记录了一个core的基本信息,除一个name为必备属性外,其余均为可选。


 
 
 二、索引
    索引,是将文档中的内容经过分析后,形成一个Term---Document的映射,并将其写入索引文件的过程,即说明哪些文档中包含某个词汇。
(一)向搜索引擎中提交文档的方法
1、命令行方式
使用example程序中提供的post.jar或者post.sh提供文档。它支持XML/JSON/CSV三种文件格式。

如java -jar post.jar *.xml
但本质上,它仅仅是将solr提供的API进行了封装。最核心的类为SimplePostTool。此类调用了SolrJ的接口。
2、SolrJ
使用solr提供的API。进行文档的加入。

3、其他第三方工具
(1)Data Import Handler (DIH)
将外部数据导入Solr。如站点、关系型数据库等内容。
(2)ExtractingRequestHandler, aka Solr Cell
对Tika进行了封装。可用于导入富文本内容。如pdf,office等
(3)Nutch
抓取网页并将其导入solr。



    三、分析



    四、索引



    五、扩展功能
    

【solr基础教程之中的一个】Solr相关知识点串讲的更多相关文章

  1. 【solr基础教程之一】Solr相关知识点串讲

           Solr是Apache Lucene的一个子项目.Lucene为全文搜索功能提供了完备的API,但它只作为一个API库存在,而不能直接用于搜索.因此,Solr基于Lucene构建了一个完 ...

  2. 【Tika基础教程之中的一个】Tika基础教程

    一.高速入门 1.Tika是一个用于文本解释的框架.其本身并不提供不论什么的库用于解释文本,而是调用各种各样的库,如POI,PDFBox等. 使用Tika.能够提取文件里的作者.标题.创建时间.正文等 ...

  3. GSAP JS基础教程--TweenLite操作元素的相关属性

    今天来学习用TweenLite操作元素的各种属性,以Div为例,其他元素的操作也是一样的,只是可能一些元素有它们的特殊属性,就可能不同罢了.   代码里用详细注释,我就不再重复啦,大家看代码就可以啦! ...

  4. Xamarin.FormsShell基础教程(9)Shell相关类体系

    Xamarin.FormsShell基础教程(9)Shell相关类体系 在Shell中,最为主要的类是Shell类.Shell类实现了大多数应用程序所需的基本UI功能的页面.除此以外,常用的类还有Sh ...

  5. 【solr基础教程之二】索引

    一.向Solr提交索引的方式 1.使用post.jar进行索引 (1)创建文档xml文件 <add> <doc> <field name="id"&g ...

  6. 【solr基础教程之二】索引 分类: H4_SOLR/LUCENCE 2014-07-18 21:06 3331人阅读 评论(0) 收藏

    一.向Solr提交索引的方式 1.使用post.jar进行索引 (1)创建文档xml文件 <add> <doc> <field name="id"&g ...

  7. 【solr基础教程之九】client

    一.Java Script 1.因为Solr本身能够返回Json格式的结果,而JavaScript对于处理Json数据具有天然的优势,因此使用JavaScript实现Solrclient是一个非常好的 ...

  8. 【solr基础教程之九】客户端

    一.Java Script 1.由于Solr本身可以返回Json格式的结果,而JavaScript对于处理Json数据具有天然的优势,因此使用JavaScript实现Solr客户端是一个很好的选择. ...

  9. 【solr基础教程之九】客户端 分类: H4_SOLR/LUCENCE 2014-07-30 15:28 904人阅读 评论(0) 收藏

    一.Java Script 1.由于Solr本身可以返回Json格式的结果,而JavaScript对于处理Json数据具有天然的优势,因此使用JavaScript实现Solr客户端是一个很好的选择. ...

随机推荐

  1. Gym - 101981A The 2018 ICPC Asia Nanjing Regional Contest A.Adrien and Austin 简单博弈

    题面 题意:一堆有n个石子,编号从1⋯N排成一列,两个人Adrien 和Austin玩游戏,每次可以取1⋯K个连续编号的石子,Adrien先手,谁不能取了则输 题解:k==1时,显然和n奇偶相关,当k ...

  2. [Apple开发者帐户帮助]六、配置应用服务(3)创建地图标识符和私钥

    要与MapKit JS通信,您将使用Maps私钥对一个或多个开发人员令牌进行签名. 首先注册地图标识符以识别您的应用.为使用MapKit JS的每个应用注册地图标识符.接下来创建并下载启用了MapKi ...

  3. 《疯狂Python讲义》重要笔记--变量

    一个Python解释器 接下来的旅程——你需要下载好Python,Python解释器通常放在 /usr/local/bin/python3.7 ; 在Unix系统的bash中输入 where pyth ...

  4. Python 33(2)进程理论

    一:什么是进程         进程指的是一个正在进行 / 运行的程序,进程是用来描述程序执行过程的虚拟概念 进程vs程序 程序:一堆代码 进程:程序的执行的过程 进程的概念起源于操作系统,进程是操作 ...

  5. 应用JavaScript搭建一个简易页面图片无缝滚动效果

    页面图片无缝滚动JavaScript原理:移动的区块包含图片内容,区块相对父级元素进行定位脱离文档流.再令区块的left值每隔固定的时间进行等量减少(或增大)从而实现区块的匀速运动.由于每次间隔移动的 ...

  6. 字符串转为JSON对象

    经常写字符串转为JSON对象,但是每次没有说一次就成功的,老是搞错属于哪个包的方法,遂记录一下 JSONObject.parseObject(str);这个方法需要导入包 com.alibaba.fa ...

  7. 安装DotnetCore-Vue项目模板

    dotnet new --install Microsoft.AspNetCore.SpaTemplates::*

  8. Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) C. Destroying Array -- 逆向思维

    原题中需要求解的是按照它给定的操作次序,即每次删掉一个数字求删掉后每个区间段的和的最大值是多少. 正面求解需要维护新形成的区间段,以及每段和,需要一些数据结构比如 map 和 set. map< ...

  9. 复习java基础第四天(集合:List、Map、Collections、Enumeration)

    一.List: List 代表一个元素有序.且可重复的集合,集合中的每个元素都有其对应的顺序索引 List 允许使用重复元素,可以通过索引来访问指定位置的集合元素. List 默认按元素的添加顺序设置 ...

  10. windows server 2012 r2 安装无法找到install.wim 错误代码0x80070026,以及制作U启动盘决解ISO文件超过5G大小限制的解决方案(转)

    戴尔服务器r530 windows server 2012 r2 安装无法找到install.wim 错误代码0x80070026,以及制作U启动盘决解ISO文件超过5G大小限制的解决方案 关于在服务 ...