前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Solr--全文索引原理

Solr--全文索引原理

作者头像
令仔很忙
发布2018-09-14 16:43:46
2.1K0
发布2018-09-14 16:43:46
举报
文章被收录于专栏:令仔很忙令仔很忙令仔很忙

在一些大型的门户网站和电商网站中,都有自己的站内搜索,但是使用传统的数据库查询方式已经无法满足一些高级的搜索要求,比如说:搜索速度要快、搜索结果要按照相关度排序,搜索的内容格式不固定,这些都需要使用全文实现搜索功能。

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

什么是全文搜索?


  • 信息检索 我们先要知道信息检索:从信息集合中找出与用户需求相关的信息,检索的信息包括:文本,图像,音频,视频等信息。而全文检索是信息检索其中的一类。
这里写图片描述
这里写图片描述

全文检索:是计算机索引程序扫描文章中的每一个词,对每一个词都建立索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的检索进行查找,并将查找结果返回给用户。 数据检索:例如,数据均按”时间、人物、地点、事件”的形式存储,查询可以为地点=“北京”,数据检索的性能取决于所使用的标识字段的方法和用户对这种方法的理解,有很大的局限性。

  • 全文检索 举个栗子:当我们去图书馆借书的时候,肯定不会说是去一本一本你的去翻看然后找自己感兴趣的书籍,我的天哪,这得找到猴年马月。
这里写图片描述
这里写图片描述

所以我们进图书馆的时候一般都会先去查阅数据的索引卡,或者索引标志,找到相应的书籍;所以当一本书进入图书馆之后,最重要的就是建立索引卡,同样,对于我们所拥有的信息,也需要建立索引。 建立索引,就是对待搜索的信息进行一定的分析,并将分析结果按照一定的组织方式存储起来,通常将这些结果存储在文件中。存储分析结果的文件的集合就是索引。在查询时,先从索引中查找,由于索引是有一定的结构组织的,所以查询的速度非常快。

这里写图片描述
这里写图片描述

上图就是建立索引的过程,先对信息进行采集(如果信息检索系统在用户发出检索请求后再去互联网上找答案,根本无法再有限的时间返回结果),然后对信息进行加工,建立索引。在Internet上采集信息的软件被称为爬虫或者蜘蛛或者网络机器人。爬虫在Internet上访问每一个网页,没访问一个网页就把其中的内容传回本地服务器。爬虫的原理可以去看看这篇文章网络爬虫基本原理(一)

倒排索引结构


一开始有点蒙,倒排序怎么个倒排序,那正排序又是什么?后来在网上找到一篇文章,正排索引和倒排索引

正排索引

主要的意思就是说,当网络爬虫在Internet上收集信息的时候,会把收集到的网页进行处理,就是把对网页的内容进行分词(关键词),可以看成这样:

网页

关键词

网页A=

关键词1+关键词2+关键词3+关键词4+关键词5+关键词6+关键词7+…….

网页B=

关键词1+关键词2+关键词3+关键词4+关键词5+关键词6+关键词7+…….

网页C=

关键词1+关键词2+关键词3+关键词4+关键词5+关键词6+关键词7+…….

具体怎么分词大家可以去了解了解分词器,中文的分词和英文的分词是不一样的。原理如下:

这里写图片描述
这里写图片描述

正如上面的这个过程,把一个网页分成一个个的关键词的过程就是一个正排索引的过程。

倒排索引

用户查信息的时候,一般都是通过关键词来查询相应的信息。

这里写图片描述
这里写图片描述

倒排索引是这样的,倒排索引这个关键词之后跟了一堆网页。

关键词

网页

关键词1=

网页A+网页B+网页C+网页O+…….

关键词2=

网页B+网页P+网页Z+…….

关键词3=

网页D+网页T+网页Y+网页Z+…..

而solr就是一个基于Lucene的Java全文搜索引擎服务器。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年08月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是全文搜索?
  • 倒排索引结构
    • 正排索引
      • 倒排索引
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档