Solr 简介

  • 1.为什么使用 Solr
  • 2.常见搜索解决方案
  • 3.Solr 简介
  • 4.正向索引和反向索引

1.为什么使用 Solr

  • 在海量数据下,对 MySQL 或 Oracle 进行模糊查询或条件查询的效率是很低的。而搜索功能在绝大多数项目中都是必须的,如何提升搜索效率是很多互联网项目必须要考虑的问题
  • 既然使用关系型数据库进行搜索效率比较低,最直接的解决方案就是使用专用搜索工具进行搜索,从而提升搜索效率

2.常见搜索解决方案

  • 基于 Apache Lucene(全文检索工具库)实现搜索。但是 Lucene 的使用对于绝大多数的程序员都是“噩梦级”的。
  • 基于谷歌 API 实现搜索。
  • 基于百度 API 实现搜索。

3.Solr 简介

  • Solr 是基于 Apache Lucene 构建的用于搜索和分析的开源解决方案。可提供可扩展索引、搜索功能、高亮显示和文字解析功能。
  • Solr 本质就是一个 Java web 项目,且内嵌了 Jetty 服务器,所以安装起来非常方便。客户端操作 Solr 的过程和平时我们所写项目一样,就是请求 Solr 中控制器,处理完数据后把结果响应给客户端

4.正向索引和反向索引

  • 只要讨论搜索就不得不提的两个概念:正向索引(forward index)和反向索引(inverted index)
  • 正向索引:从文档内容到词组的过程。每次搜索的时候需要搜索所有文档,每个文档比较搜索条件和词组。
文档 词组
I am a chinese I,am,a,chinses
  • 反向索引:是正向索引的逆向。建立词组和文档的映射关系。通过找到词组就能找到文档内容。(和新华字典找字很像)
词组 文档
I,am,a,chinses I am a chinese

Java Solr:(一)Solr 简介相关推荐

  1. Solr 11 - Solr集群模式的部署(基于Solr 4.10.4搭建SolrCloud)

    目录 1 SolrCloud结构说明 2 环境的安装 2.1 环境说明 2.2 部署并启动ZooKeeper集群 2.3 部署Solr单机服务 2.4 添加Solr的索引库 3 部署Solr集群服务( ...

  2. linux环境下如何查看solr版本,Solr环境搭建(linux)

    1. 前言 在5.0版本之前,solr无法作为独立的服务器进行使用,需要将其打包为war包部署在任何Servlet容器内才能使用. 从5.0开始,solr可以单独作为一个独立的Java应用服务器分发使 ...

  3. Java开源项目EZMorph简介

    http://hi.baidu.com/glfbin/blog/item/1302747e8722852e0cd7daaf.html Java开源项目EZMorph简介 2011-04-30 9:40 ...

  4. java.util.Stack类简介

    转载自  java.util.Stack类简介 Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来 Deque(双端队列)比起St ...

  5. java apache commons_Apache commons(Java常用工具包)简介

    Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问http://jakarta.apache.org/commons/index.html Be ...

  6. 初学Java多线程:线程简介

     Java多线程初学者指南系列教程http://developer.51cto.com/art/200911/162925.htm 初学Java多线程:线程简介 2009-06-29 17:49 ...

  7. Java关键字之break简介说明

    转自: Java关键字之break简介说明 下文是笔者总结的break关键字的功能简介说明,如下所示 break关键字的功能 break关键字的功能:用于中断for循环中断while循环中断switc ...

  8. [转载]Java嵌入式开发之一-简介使用Java编写Palm OS程序的解决方案

    Java嵌入式开发之一-简介使用Java编写Palm OS程序的解决方案 现在,使用Java语言为 Palm OS编写程序的领域还没有完全统一,并且也有许多程度上的差异,目前,市面上有好几种不同的可用 ...

  9. 深圳Java培训:JDBC简介

    深圳Java培训:JDBC简介 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一 ...

  10. Java构造函数(构造方法)的简介说明

    转自: Java构造函数(构造方法)的简介说明 Java构造函数(构造方法) java中的构造函数是一种特殊类型的方法,               用于初始化对象.              Jav ...

最新文章

  1. xmlHttpRequest避免缓存的办法
  2. 类似百度输入框自动完成
  3. java 爬中 验证码识别_JAVA爬虫---验证码识别技术(一)
  4. 实现java.lang.Runnable接口
  5. 【51单片机快速入门指南】7:片上EEPROM
  6. ubuntu c++检测usb口事件变化_炼就“火眼金睛”,FETA40i-C核心板“牵手”光时域反射仪...
  7. 剑指offer(21)栈的压入、弹出序列
  8. iPhone 9测试工作结束:4.7英寸小屏设计 主打新兴市场
  9. 最短路 Codeforces Round #103 (Div. 2) D. Missile Silos
  10. windirstat这个软件可以图形化统计磁盘占用,实用!
  11. 2020年生肖码表图_2020年生肖排位表 鼠年号码岁数表
  12. PS制作微信公众号封面
  13. 关于sockaddr_in 、WSAData 、sockaddr等未定义的问题
  14. 两个重要极限定理推导
  15. Jquery获取选中 的TR元素 和 子元素td
  16. tensorflow官方Blog-使用Keras Tuner超参数优化框架 进行超参数调整 ,具体实现版本
  17. 派盘与百度云同步盘哪家强?
  18. OLTP、OLAP与HTAP
  19. 腾讯QQ大数据:BI方法论-数据体系建设之路
  20. 都说幕布适合写作,但是你知道 Effie 吗?

热门文章

  1. ZZULIOJ-1095: 时间间隔(多实例测试)(Java)
  2. 为什么那么多人喜欢用CTA策略?
  3. 社工,定位聊天对象的真实地址
  4. 三重积分为何不能直接带入积分区域?搞懂这些,重积分基本可以了
  5. Java笔记07——类和对象
  6. Part 2 Linux programming:chapter 18:多线程服务器端实现
  7. 计算机网络实践之元气骑士公网异地联机(三) 完善转发机的转发规则
  8. redux和react-redux
  9. RISC-V 指令详解
  10. 半年内第二块国产全功能GPU,附带首个游戏显卡!摩尔线程造芯神速,张建中“黄”气逼人...