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. MFC下无法为空间添加变量解决

    许久不用MFC,今天在vs2008下用MFC写个小东西,结果在为控件添加变量的时候,居然无法成功——那个界面显示怪怪的,点击完成提示失败.    还好同事遇到过这个问题,给出链接http://hi.b ...

  2. 关于php中正则匹配包括换行符在内的任意字符的问题总结

    要使用正则匹配任意字符的话,通常有以下几种方法,这里我分别对每一种方法在使用的过程中做一个总结: 第一种方式:[.\n]*? 示例 ? PHP preg_match_all('/<div cla ...

  3. Verilog之基本算数运算

    1.加减法 module addsub ( :] dataa, :] datab, input add_sub, // if this is 1, add; else subtract input c ...

  4. textarea 在不同浏览器高宽不一致的兼容性问题

    在html,很多同学喜欢使用rows.cols,来设置textarea的高宽,却发现,在火狐跟其他浏览器,好像高宽却不一致! 因为这是火狐的一个bug, https://bugzilla.mozill ...

  5. java获取系统信息

    public class SystemInfo { public static void main(String[] args) { //系统属性 Properties prop = System.g ...

  6. 关于java中线程休眠的另一种写法

    编辑器加载中... 优先使用TimeUnit类中的sleep() TimeUnit是什么? TimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的 ...

  7. Subsets 子集系列问题 leetcode

    子集系列问题: Coding 问题中有时会出现这样的问题:给定一个集合,求出这个集合所有的子集(所谓子集,就是包含原集合中的一部分元素的集合). 或者求出满足一定要求的子集,比如子集中元素总和为定值, ...

  8. Coins(HDU 2844):一个会超时的多重背包

    Coins  HDU 2844 不能用最基础的多重背包模板:会超时的!!! 之后看了二进制优化了的多重背包. 就是把多重转变成01背包: 具体思路见:http://www.cnblogs.com/tt ...

  9. Webpack使用教程二

    Webpack提供了很多的命令选项来帮助用户构建应用,如果只是通过命令行来使用这些选项,会显得不方便.为了更好的使用Webpack提供的各种命令选项,我们可以创建一个webpack.config.js ...

  10. GNU libc (Glibc) 2.18 发布

    标准C库Glibc发布2.18正式版.2013-08-12 上一个版本是2012-12-25的2.17. 详细改进:Version 2.18 * The following bugs are reso ...