mysql solr引擎_开源搜索引擎solr介绍

本文介绍了开源搜索引擎Apache Solr,强调其基于Lucene的高性能特点,与关系型数据库的区别,以及倒排索引技术的优势。通过实例解析Solr的基本操作,包括下载、配置、启动,以及中文分词问题,推荐了IKAnalyzer分词器的使用。同时,简要提及了Solrcloud的分布式特性及其与Zookeeper的配合使用。
摘要由CSDN通过智能技术生成

1 什么是solr?

“内事不决问百度,外事不决问谷歌”,相信大家对百度、谷歌等搜索引擎都很熟悉了。网上信息浩瀚万千,而且毫无秩序,所以搜索引擎对用户的作用就体现出来了。

不过,因为商业原因,百度、谷歌等搜索引擎都不是开源的。但是,大家不用担心,有闭源的,当然也有开源的搜索引擎。优秀的开源搜索引擎有Apache Solr、Elastic Search、Index Tank等等,今天我们主要介绍Apache Solr。

Apache Solr是一个高性能,基于Lucene的全文搜索服务器。做为一款搜索引擎,solr不具备爬虫一样采集信息的能力,而是专注于信息的存储和检索。许多朋友误认为solr是数据库,从广义上讲也可认为是数据库,但是它和传统意义上的数据库还是有些区别的。

相信使用过关系型数据库的朋友们一定都做过搜索的功能,比如:有100条记录,我想搜索记录中含有“云计算”字段的记录,可以使用关系型数据库提供的“模糊搜索”的功能。“模糊搜索”能不能满足你的要求呢?如果记录数小,100条、1000条记录当然没问题。但是,如果有100万条、1000万条甚至上亿,那么“模糊搜索”的效果就会大大折扣。而这时,我们就需要用到solr等搜索引擎了。

Solr是基于lucene的倒排索引技术(也叫全文索引,mysql等关系型数据库也有这个概念,但是“术业有专攻”,solr实现的更好),什么是倒排索引,下面我会做具体介绍。

1.1倒排索引

传统意义的数据库,做索引时,都是一个文档id对应一个或者多个内容字段。而倒排索引则是一个内容字段对应多个文档id。什么意思呢?举个例子,假设分别把下面三句话存储到mysql和solr中:

I like sportsI like readingI like reading books

在mysql中,一个文档id对应一条记录,一条记录中就会有一个或多个内容字段。比如:文档id为1,对应“I like sports”;文档id为2,对应“I like reading”。而在搜索时,就会一条记录一条记录的去检索,比如:我想搜索“books”字段,就会先从文档1找起,文档1没有,文档2也没有,文档3找到了,好,返回数据。相对来说,这样效率有点低。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值