solr学习

solr简介

solr是java开发的,基于Lucene的企业级开源 全文搜索平台。采用的是反向索引(倒排索引),以Document为对象进行存储,每个文档有一系列的Field构成,每个Field表示资源的一个属性,文档的Field可以被索引,以提供高性能的搜索效率。

写完简介我也忘得差不多了只记得了他是一个倒排索引

 

从小老师就让我们养成每天写日记的良好习惯,到目前为止我们写了好多好多了,好多是多少篇呢?是N篇日记了

然后你也总是没事翻翻回忆一下之前发生的事情。似乎自己回到了当初一般。

突然有一天你想起来我大三同学老王还欠我好多钱呢!这几天我这月光族再做最后挣扎,心想我一定要把这比巨款个要回来,让我解决一下温饱吧。然后我就打开微信给同学老王发了消息

--------------------------------------------------------------------------------------

                               嘿 老王 最近想死你了啊

。。。你怕不是饿的神经了吧

                              哎,月底了确实停不过去了啊。大学欠我的钱是不是要还还了

什么鬼,饿疯了吧 我什么时候欠你钱了

(我心想这老王 ,开始耍赖了啊。欠我那么多钱不打算还了啊,还好我还记得当初借我钱的原因)

                             你忘了么?那天你女朋友了来找你玩,你当时没钱了问我借了5000块 结果给你以后一星期都没回来啊

                             你女朋友走了以后你回宿舍愣是睡了一天一夜啊

我不记得了,我还说你欠我5000块钱呢 ,你不是有写日记

的习惯么,我记得你把这事写日记里了如果你要能找到我就给你

------------------------------------------------------------------------------------------

就这样结束了聊天,哎这个老王真狗啊,我只记得借我钱的事,怎么记的清楚到底哪天写的日记啊

这难道让我一篇一篇的翻么

作为程序员的我这么的懒怎么可能一篇篇的找啊,找到也下个月了

我把我目前的难题还原成以下业务场景

我有N多篇日记

我要从中找到一篇日记 搜索条件是老王借了我5000元

按照我们对数据库的理解 我每篇日记都上传到数据库 每写一篇日记都有一个自增的ID,这时候我如果知道这篇日记的ID我就能很容易找到我什么时候写了这篇日记 跟这篇日记的内容,但是呢我现在只知道文章一小段的内容,你让我怎么找文章的ID么,可能会想到模糊查询,但是我文章的内容都没有在数据库中啊只是存了一个路径,哎这下难办了,到嘴的钱跟着鸭子飞了。我现在只能使用正排索引(通过key 找到 value),那是不是有一种倒排索引的东西能让我解决这个问题呢 我需要的( 通过 value 找到 key)

然后我就找到了 solr 和 elasticsearch

那我选择用哪个呢 那就要看看他俩的区别了

相同点:核心的全文检索引擎工具包( lucene )是相同的

不同点:1. solr 利用 zookeeper 进行分布式管理 ,而elasticsearch自身带有分布式协调管理功能

               2. solr 官方提供的功能比elasticsearch更多更丰富,而 elasticsearch 注重于核心功能,高级功能大多由第三方插件提供

               3. solr 在传统搜索应用中表现较好,elasticsearch在实时搜索应用方面较好

唉! 脑子笨的我看完这概念又有点迷了 

lucene 是什么呢????  传统搜索跟实时搜索又是什么呢??  只有弄懂这些我才知道我适用那种啊

先解释一下第二个简单的问题吧

传统搜索: 其实就是相对于实时的一种存在  就是指我搜索的内容是从静态数据库查出符合条件的结果,这种结果往往是不可改变的、静态的。

实时搜索:其实就比如说 我在百度都一个 现在北京天气如何 这种搜索往往是实时变化的 是不确定的

这个明白了吧

按这样理解的话 那我通过日记的内容搜索到日记的ID 使用 solr 就好了 。

但是 我虽然知道了 我使用solr就好了 但是 我还是想 搞明白 lucene 是什么

 

那好吧 咱们继续搞

然后我就在百度百科找到了下面内容

这么一大堆东西看我我都呕吐了 但是我注意到了几个关键的东西

luncence中使用的一款中文分词器IKanalyzer 具有细粒度切分和智能切分的能力

solr 提供了完整的查询引擎和索引引擎和部分文本分析引擎 是一个能实现全文检索功能的工具包

现在我们知道了他是什么 ,但是一篇文章那么多词,他是怎么存储的呢,还要保证快速搜索出来。

既然要说这部分内容我先去搬个小板凳去喽

首先拿到文章后solr会进行分词、创建索引库和文档数据库。

以上只是一个我根据理解画出来的大概的逻辑

第一个是solr产生的分词

第二个是对产生的分词进行存储

solr 会吧分词词组作为索引,用二分法将关键字与排序号的索引进行匹配进而查出对应的文档

 

哎 二分法也不会啊 下编文章学习二分法

学了solr后我赶紧搜出这篇日记,然后找老王 要回我的5000元

 

 

 

 

文章是自己学习的总结,如有问题望各位指出

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小马也是行动派

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值