全文检索(Lucene&Solr)

1)什么是全文检索?为什么需要全文检索?

结构化数据(mysql等)方便查询,而非结构化数据(如多篇文章)是难以查询到自己需要的,所以要使用全文检索。

全文检索:将非结构化数据的内容提取一部分,然后重新组织,使其有一定结构,然后就能以此快速的查找需要的信息,提取整理后的信息称之为索引。

应用:如淘宝,京东的搜索商品;百度的索引引擎。

2)原始文档:互联网上的网页,数据库中的数据,磁盘上的文件;

索引库:索引+原始文档;

语汇单元:一个term就是一个单元。

3)步骤

创建文档对象:将一个非结构化数据的属性(称为域,如文档名称与路径等)提取出来;

分析文档:去除文档的一些标点符号与一些没意义的词,其他的单词每个设置为特定的term,term的名称就是这些个单词;

创建索引:将这些term作为索引;

保存索引和文档到索引库;

搜索》创建查询》执行查询》渲染结果。

4)通过索引找到的结果可能有多个,他们是怎样排序的呢?

通过索引找到的数据,谁出现的索引词汇数量比较多就排在去前面;

还有一种是反向查询,先查找内容,再查询文本属性,这就比较慢了。

5)mysql数据库往往满足不了高级的搜索,所以使用全文搜索;

Lucene实现站内搜索工作量比较大,性能维护都不好;

所以当下最优的方案是Solr,它提供了较为完备的搜索引擎解决方案。

转载于:https://www.cnblogs.com/xdzy/p/9808380.html

全文检索(LuceneSolr)相关推荐

  1. 2021年大数据ELK(三):Lucene全文检索库介绍

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 一.什么是全文检索 1.结构化数据与非结构化数据 2.搜索结构化 ...

  2. Django 全文检索6.3

    全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理 haystack:django的一个包,可以方便地对model里面的内容进行索引.搜索,设计为支持wh ...

  3. haystack全文检索框架

    Haystack 1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsear ...

  4. Solr_全文检索引擎系统

    Solr介绍: Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务.Solr可以独立运行在Jetty.Tomcat等这些Servlet容器中. Solr ...

  5. Lucene:基于Java的全文检索引擎简介(转载)

    Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 全文检索的实现:Luene全文索引和数据库索引的比较 中文切分词机制简介:基 ...

  6. 开源 免费 java CMS - FreeCMS1.9 全文检索

    项目地址:http://code.google.com/p/freecms/ 全文检索 从FreeCMS 1.7開始支持 仅仅有创建过索引的对象才干被lucene类标签查询到. 信息类数据会在信息更新 ...

  7. PHP+redis实现超迷你全文检索

    2014年10月31日 11:45:39 情景: 我们平台有好多游戏, 运营的同事在查询某一款游戏的时候, 目前使用的是html的select下拉列表的展现形式, 运营的同事得一个个去找,然后选中,耗 ...

  8. 如何给TiDB插上全文检索的翅膀

    "搜索"是内容类App产品非常重要的一个功能,"全文检索"是支持它不可或缺的一项基本能力. 目前业界很多公司产品的业务数据已经向 TiDB 迁移了,但目前在 T ...

  9. (转)全文检索技术学习(一)——Lucene的介绍

    http://blog.csdn.net/yerenyuan_pku/article/details/72582979 本文我将为大家讲解全文检索技术--Lucene,现在这个技术用到的比较多,我觉得 ...

  10. Centos 编译安装sphinx-0.9.9全文检索

    Sphinx 简介 Sphinx是开源的搜索引擎,它支持英文的全文检索.所以如果单独搭建Sphinx,你就已经可以使用全文索引了.但是往往我们要求的是中文索引,怎么做呢?国人提供了一个可供企业使用的, ...

最新文章

  1. 关于linux基础的博客,第一篇博客,以下。
  2. Http协议中的Content-Length属性
  3. JUC并发编程三 并发架构--线程运行原理
  4. pythonprint()_python基础1 print()函数
  5. leetcode 1370. 上升下降字符串
  6. SharePoint学习札记[2] — MOSS2007体系结构概述
  7. html 轮播_Axure教程:使用动态面板实现轮播图
  8. 线段树模板(HDU 6356 Glad You Came)
  9. pyqt5多进程 python_PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
  10. Windows Service开发点滴20130622
  11. 理解JMS规范中消息的传输模式和消息持久化
  12. 自动关机win10_win10系统U盘使用步骤酷比魔方平板电脑windows安装教程
  13. BBS中用SSH方式登录添加附件
  14. 邮箱客户端 gmail支持_如何联系Gmail支持
  15. C#打开SDE数据库的几种方式总结
  16. 【环境配置】ceres solver安装
  17. 基于AM5728 DSP+ARM阵列麦克风解决方案
  18. solr mysql增量导入_10.Solr4.10.3数据导入(DIH全量增量同步Mysql数据)
  19. python3进阶篇(二)——深析函数装饰器
  20. Fatal error:Cannot ‘break‘ 2 levels in数据库导出错误解决

热门文章

  1. 推荐几个阿里、腾讯、美团大佬的公众号
  2. 躁动不安的年代,你需要读几本好书(python爬虫及数据分析)
  3. R语言爬虫系列6|动态数据抓取范例
  4. delphi win64 DEBUG不能进预设断点的问题
  5. Container with most water
  6. Android Socket编程【转】http://duguyidao.iteye.com/blog/1069736
  7. Kafka 源码环境搭建
  8. Docker 持续推动创新,三款应用为您指引未来趋势
  9. ERC20代币合约详解,附实现代码
  10. Zabbix监控介绍配置zabbix架构