10.0 solr+业务域+Search

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40406929/article/details/84977753

在前段时间我总结了sorl和lucene的区别:

今天分析下solr,首先我们先要分析下什么是solr?

Solr它是一个面向企业应用的一个搜索搜索引擎,并且可扩展、可部署的搜索/存储的引擎。优化搜索大量以文本为中心的数据。

Solr经常和Hadoop一起使用,而Hadoop又是什么呢?

这个Hadoop是2016出现的一门框架,这个框架是一个分布式文件系统(Hadoop Distributed File System),简称HDFS,它可以解决许多要求极大伸缩性的问题,如果你要grep(一个文本检索工具)一个10TB的巨型文件,会出现什么情况?在传统的系统上,这将需要很长的时间,但是Hadoop在设计时就考虑到这些问题,采用并行执行机制,因此能大大提高效率。

这个Hadoop的作用简单了解下,我们继续谈我们的solr。

最近一直在研究着项目中的search服务!

参考京东的网站,一些使用很高的数据一定不是从masql中直接获取来的,那是从哪里来的呢?redis?我们虽然用了redis去存储图片,但也不能一直往里面扔东西,redis也是受不来的!

继续探讨下去啊,请看下图:

没错这就是京东的搜索页面,这个当我们输入手机两字时,怎么出来这么多选项?这些选项是从哪里来的?继续分析下去,如果在数据库中像 %小米6X 64G% 这样的数据肯定在mysql中查询不出来数据,

但是京东的数据怎么能够让这些选项显示到页面上面的?

可是这些问题京东是怎么做到的呢?

回归我们的项目继续分析下去:

  1. 首先这些数据可定有存储:来自于tb_item表!也就是间接来自于mysql!
  2. 但是数据为什么不能直接来自myaql!

原因有二:myaql支持不了高并发量,其次是模糊查询不够全面。

  1. 数据肯定原因在上面也不是来自redis,原因我们也在上面解析过了!
  2. 京东商城的项目肯定是来自于索引库Lucene一样的功能。

通过这个图片,我已经明白了,我们先把数据库中的东西存储到luecene中,当然我们已经探讨过lucene和solr的区别了,所以我们直接使用Solr去实现京东商城一样的功能!

安装solr过成省略!

Lucene是一项全文检索技术:先创建索引,在索引上查询的过程。

这点上不得不去说一下,百度,百度里用爬虫技术,把所有的东西都爬到它的索引库中。然后呈现给我们查询获取信息。

但是在java中领域中,万物皆对象,百度把爬虫爬过来的东西怎么存储?

首先肯定的是百度是不可能把所有的东西都存储的,百度是把爬取过来的数据进行分类,也就是存储关键把一条新闻进行拆分,然后其余的就不要了(也就是存储着部分信息,肯定不可能存储着全部信息,要不然百度就崩盘了),然后把拆分的部分划分成域,最后把一条新闻数据由几种域对象进行存储着。请看下图解析:

经过这图一分析,我对百度的数据获取查询,就明白好多!

所以所以京东的产品查询搜索上也运用着这么技术实现神奇的功能!

所以我们的项目就运用到了这项Solr技术!

Solr的域我们运用不了!所以需要配置自己的业务域!

但是我们在项目中,还需要进行分词器IK进行分割我们的数据!

然后把以上的东西运用到我们的项目之中!

我们首先需要继续屡清我们项目的表关系!

我们再由京东来举例,就是我们商家上传的产品,不能上传到mysql中,就直接显示到页面上由客户查询到,因为不符合规矩啊!京东这样的大型网站得对客户负责,以及产品负责,所以需要审核!也就是表关系中的字段名istbmarket。如果istbmarket。=1,才能显示出来,所以这里需要关联两张表!一张是tb_goods表,一张是tb_item表(负责京东商家审核)!

 

猜你喜欢

转载自blog.csdn.net/qq_40406929/article/details/84977753