什么是Solr?

Solr是一个用java开发的基于lucene引擎的 全文搜索 平台,原理是倒排索引,从关键字到文档的过程,Solr的资源都是以Doc为对象进行存储的,每个文档都由一系列的field构成,每个field表示资源的一个属性,文档的fied可以被索引,用于提高性能的搜索效率,一般情况下文档都包含一个能唯一表示该文档的id字段。

Solr原理?

倒排索引

通过value查找key,假设文章1 内容为123,文章2 内容为 456,文章3 内容为 789,

Solr有个功能是分词,先把文章123导入到服务器后,文章1切成1,2,3 ,原本123是文章内容,分词后,123变为三个 单独的索引,1,2,3相当于key,文章为value,文章2 和3与1类似,切成456789六个索引,他们的value就是文章序号2和3.

索引为什么快?

索引以文件的形式存储在磁盘上,所以只使用更少的磁盘io 次数的数据结构更适合做索引。b 树和b+树是是多叉树,树的度大,所以高度低。内存和磁盘交互的单位是页,将b 树和b+树的一个节点的大小设置为一个页,能保证一次io 就能读到一个页,同时磁盘采用预读策略,一次性读取相邻的几个页,读入内存后在进行二分查找。

简单说就是因为索引使用B+树,空间换时间 。

为什么要用Solr?

随意的数据不可能是根据数据库的字段查询的,那是怎么查询出来的呢,为什么千奇百怪的关键字都可以查询出来呢?

答案就是全文检索工具的实现,luncence采用了词元匹配和切分词。举个例子:北京天安门----luncence切分词:北京  京天  天安  安门  等等这些分词。所以我们搜索的时候都可以检索到。

有一种分词器就是IKanalyzer中文分词器,它有细粒度切分和智能切分,即根据某种智能算法。

这就使用solr的最大的好处:检索功能的实现。

Solr为什么比较快?

倒排索引,使用solr的分词过后吗,通过二分法与排序好的索引进行匹配,进而快速查到定位文档

空间换时间

操作:

主要是SolrTemplate完成文档操作和搜索

SolrTemplate、Query、Criteria

solr会考虑集群

solr索引库在商品状态发生改变的时候(审核通过、删除),会通过activeMQ通知更新。

solr搜索结果,可以通过redis缓存

solor快速_Solr原理?为什么要用Solr?Solr为什么比较快?相关推荐

  1. solor快速_solr:快速开始

    明年工作主要和搜索有关,在自己学习过程中分享让更多人受益是我一贯的做法,所以我会把对Solr的学习在这里与大家分享一下,如果你也对搜索也感兴趣,也是新手,那么就和我从头开始吧. 今天我们要讲的是快速开 ...

  2. solor快速_Solr快速入门

    1. 什么是Solr Solr是基于lucene的全文检索服务器. 不同于lucene工具包,solr是一个web应用,运行在servlet容器,屏蔽了底层细节,并对外提供服务. Solr创建及维护索 ...

  3. solor快速_Solr快速入门(一)

    概述 本文档介绍了如何获取和运行Solr,将各种数据源收集到多个集合中,以及了解Solr管理和搜索界面. 首先解压缩Solr版本并将工作目录更改为安装Solr的子目录.请注意,基本目录名称可能随Sol ...

  4. solor快速_Solr快速教程-下载及安装

    Solr快速教程 加载及配置步骤: 1.下载最新版本的Solr(当前为v1.4): 下载地址:http://lucene.apache.org/solr/ 选择resource-download下载 ...

  5. solor快速_Solr快速概述

    Solr 是一个基于 Apache Lucene 之上的搜索服务器,它是一个开源的.基于 Java 的信息检索库.它旨在驱动功能强大的文档检索应用程序 - 无论您需要根据用户的查询将数据服务到何处,S ...

  6. solor快速_Solr快速教程

    本教程包括获取和运行 Solr,将各种数据源摄入到多个集合中,并对 Solr 管理和搜索接口有一定的了解. 它被组织成三个部分,每个部分都建立前一个部分之上.本章的第一个练习将要求您启动 Solr,创 ...

  7. Solr原理?为什么要用Solr?Solr为什么比较快?

    什么是Solr? Solr是一个用java开发的基于lucene引擎的 全文搜索 平台,原理是倒排索引,从关键字到文档的过程,Solr的资源都是以Doc为对象进行存储的,每个文档都由一系列的field ...

  8. 【STM32F429的DSP教程】第25章 DSP变换运算-快速傅里叶变换原理(FFT)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第25章       DSP变换运算-快速傅里叶变换原理(F ...

  9. 提升点击如何实现百度关键词快速排名原理!

    提升点击如何实现百度关键词快速排名原理!现在市面上有很多点击提升排名的软件,那网站提升点击靠谱吗?提升点击如何实现百度关键词快速排名原理的呢?下面"AD2"流量家工程师为大家来分享 ...

最新文章

  1. 二十大未来最有潜力的新材料(绝对经典值得收藏)
  2. java框架之Spring 核心框架体系结构
  3. uni-app 请求封装
  4. 不能装载通讯模块。驱动程序安装不正确。
  5. 芯片支持的且会被用到的H.264特性 预测编码基本原理
  6. 【云服务】云服务案例分析Quiz
  7. python编程基础张勇答案_Python程序开发、编程基础阶段试题及答案
  8. Leetcode每日一题:36.valid-sudoku(有效的数独)
  9. python从入门到精通-Python从入门到精通
  10. Django下载文件名称不显示,中文乱码问题
  11. sepic电路MATLAB,cuk电路matlab仿真
  12. Far away from home
  13. 股票十档行情数据接口怎么看?
  14. 大班线描机器人_大班线描画-有趣的巨人
  15. 首次曝光:大厂都是这样过1024的,看的我酸了
  16. 蜗牛睡眠软件测试准吗,蜗牛睡眠怎么判断深睡 知道深睡方法
  17. 网桥工作原理及题目分析
  18. 个人英文小词典--抽取英文阅读重要的名词、动词、形容词、副词并输出其翻译结果
  19. QQ群推广的13杀招
  20. ubuntu20.04中安装划词翻译_科研干货 | 知云文献翻译,英文文献阅读必备神器!...

热门文章

  1. TensorFlow学习笔记之源码分析(3)---- retrain.py(转)
  2. 【EF】Entity Framework快速入门
  3. 仅仅实用就可以了?京东家电告诉你颜值跟性能其实可以并存
  4. 【webrtc 】P2P的JsepTransport 的创建与 管理
  5. Android自定义view之(刻度尺view)
  6. liunx下安装mysql
  7. HTML代码编码规范
  8. 共享汽车租赁系统(SSM,JSP,MYSQL)
  9. 【元胞自动机】基于matlab元胞自动机双车道交通流模型含靠右行驶【含Matlab源码 231期】
  10. Android蓝牙遥控小车软件