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

对于初学者可能对其不是很了解,下面将详细的介绍其结构。

先看下一本书的结构图

solr就好似一本书,索引结构如下图

solr创建索引的过程如下:
(1)、建立索引器IndexWriter,这相当于一本书的框架
(2)、建立文档对象Document,这相当于一篇文章
(3)、建立信息字段对象Field,这相当于一篇文章中的不同信息(标题、正文等)。
(4)、将Field添加到Document里面。
(5)、将Document添加到IndexWriter里面。
(6)、关闭索引器IndexWriter。

按照上图所示的结构,创建索引有三个基本的步骤:
(1)、创建Field,将文章的不同信息包装起来
(2)、将多个Field组织到一个Document里面,这样完成了对一篇文章的包装。
(3)、将多个Document组织到一个IndexWriter里面,也就是将多个文章组装起来,最终形成索引

从数据表的角度讲,solr其实就是一张表,如果你要建立多个表这就涉及到solr的多core知识。多core的创建将在下面的系列讲解,敬请大家关注。

来源 http://www.nice98.com/1.html

solr课程学习系列-solr的概念与结构(1)的更多相关文章

  1. solr课程学习系列-solr服务器配置(2)

    本文是solr课程学习系列的第2个课程,对solr基础知识不是很了解的请查看solr课程学习系列-solr的概念与结构(1) 本文以windows的solr6服务器搭建为例. 一.solr的工作环境: ...

  2. 07LaTeX学习系列之---Latex源文件的结构

    目录 目录: (一)Latex源文件的结构: (二)基础语法: 2.空行: 3.document: 4.数学公式: 5.latex的文件格式分类: 目录: 本系列是有关LaTeX的学习系列,共计19篇 ...

  3. IDEA学习系列之Module概念

    感谢原文作者:小manong 原文链接:https://www.jianshu.com/p/fcccc37fcb73 简单应用:IDEA Maven创建多个Module相互依赖 1.Module的概念 ...

  4. lucence学习系列之一 基本概念

    1. Lucence基本概念 Lucence是一个java编写的全文检索类库,使用它可以为一个应用或者站点增加检索功能. 它通过增加内容到一个全文索引来完成检索功能.然后允许你基于这个索引去查询,返回 ...

  5. zabbix学习系列之基础概念

    触发器 概念 "监控项"仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送警告信息,"触发器"正式英语为监控项所收集的数据 ...

  6. http协议学习系列

    深入理解HTTP协议(转)  http://www.blogjava.net/zjusuyong/articles/304788.html http协议学习系列   1. 基础概念篇 1.1 介绍 H ...

  7. 19LaTeX学习系列之---LaTeX的总结

    目录 目录 前言 (一)本系列的章节目录 (二)快速温习LaTeX 1.介绍 2.源文件结构 3.文档的结构 4.字体的设置 5.图片的插入 6.表格的插入 7.数学公式的插入 8.交叉引用与浮动体 ...

  8. 08 LaTeX学习系列之---Latex 的中文操作

    目录 目录: (一)方法一:导入 ctex 宏包 1.说明: 2.源代码: 3.效果展示: (二)使用ctex的文档类 1.说明: 2.源代码: 3.显示效果: (三)查看帮助 1.Ctex的使用手册 ...

  9. 06LaTeX学习系列之---TeXstudio的使用

    目录 目录 前言 (一)TeXstudio的认识 1.TeXstudio的安装 2.TeXstudio的优点 3.Texstudio的界面 (二)TeXstudio的编译与查看 (三)TeXstudi ...

随机推荐

  1. [MyBean-插件]MyBean通用报表免费无限制版本发布

      [优点]    1.开发时无需安装报表组件(可以直接用编译好的文件,注意版权说明,请自行编译一次相应的报表插件文件).    2.无带包烦恼所有版本Delphi都可以使用,不拖累Delphi版本的 ...

  2. 重载new和delete

    当我们创建一个new表达式时,会发生两件事.首先使用operator new()分配内存,然后调用构造函数.在delete表达式里,调用了析构函数,然后使用operator delete()释放内存. ...

  3. LXC docker

    docker的原理和特点可以参照百度百科 http://baike.baidu.com/view/11854949.htm 昨天听到光照说docker技术实现, 既然可以轻量虚拟,是否可以多个虚拟出分 ...

  4. JS 插件使用

    1.时间控件的使用 My97DatePicker WdatePicker({ minDate: '%y-%M-{%d}'}) 默认当前日期以后 LoanMessage.LoanAppAgentMode ...

  5. iOS9的一些问题

    1.App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. ...

  6. 『TCP/IP详解——卷一:协议』读书笔记——02

    2013-08-16 20:07:11 1.3 TCP/IP的分层 这是一个很好的图,要多看!!图上有些细节会在今后的笔记中提到,看不懂不必深究. IP是网络层上的主要协议,同时被TCP和UDP(这两 ...

  7. 注意在<s:if test="#session.user.power==0">中不能用 <s:if test=$sessionScope.user.power==0">

    获取封装在session的对象 用#session.对象名,可以获取对象 用#session.对象名.属性,可以获取属性. 注意在<s:iftest="#session.user.po ...

  8. 【原创】-- nfs安装配置及使用,挂载根文件系统

    环境:ubuntu14.04(非虚拟机),OK6410 环境搭建: (1) #sudo apt-get install nfs-kernel-server 如果已经是最新版本了,无需安装 (2) 建立 ...

  9. 用c#开发微信 (14) 微统计 - 阅读分享统计系统 4 部署测试 (最终效果图)

    微信平台自带的统计功能太简单,有时我们需要统计有哪些微信个人用户阅读.分享了微信公众号的手机网页,以及微信个人用户访问手机网页的来源:朋友圈分享访问.好友分享消息访问等.本系统实现了手机网页阅读.分享 ...

  10. 创建链接服务器(dblink)

    --创建链接服务器(dblink) exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址' exec sp_addlinkedsrv ...