搜索技术之我不懂的东西?

前几天上着班呢,一个过去的同事给我打电话过来,接起电话,就听那边机关枪似得一顿扫射,谈话内容是这样子的。

那个谁,我这里现在有个问题要请教下你,这边有个站,客户要加个需求,就是需要一个搜索的功能,大概搜索的属性差不多有50个左右,不多,没有淘宝那么复杂,比如,我一个冰箱,总有型号吧,根据型号这样子去查找,那么型号就算是一个属性,等等情况,我就想让你从技术角度来给我评估下这个东西难做不,是不是几条关联查询就能搞定?

我这朋友以前是敲代码的,不过代码敲不好,嘴上功夫到真不是盖的,能忽悠,哥们这一通说完,都不带喘气儿的,我这边大气都不敢喘,生怕漏听了一个字,以至一世英名尽毁(开玩笑~),其实听到一半我就知道他讲什么了,其实他还说了很多废话,以上并没有列举。

他讲完了我直接爆粗口,艹,50个属性还不多,惊得身边的同事一阵诧异的看着我…

然后稍微捋了捋思绪,毕竟参加工作加上实习也不过才2年半左右,呵呵..

OK,不就是个搜索技术吗,这还不简单…呵呵,哥还真没做过我说。

不过没吃过猪肉还没见过猪跑吗。

我稍微思索了下提出了第一个方案:

根据你刚才说的,如果只是50个分类的话,那么你这50个分类是否有规则,比如,型号,是数字和字母组合的,品牌呢是中文。。等等。

如果有规则,那么你可以写一套规则出来,比如我输入个123,然后用123去匹配所有的规则,看符合哪几个,然后去分别执行sql查询,通过业务逻辑去拆解他,这是最简单也是最廉价的方法。

这个方法操作起来确实简单些,但如果你们的数据量不大,而且规则能够很好的拆分开来,那么这个方案确实靠谱。

他没给我明确的回复我知道得多给他点时间想想,但我并没有多做等待,直接说了第二个方案:

如果从技术层面来讲就涉及到搜索引擎中的全文搜索技术,就我知道的应该要使用solr来搞,其实也简单不是特别复杂,就是不知道你那边的人能搞不。

他问我solr是什么鬼,什么叫全文搜索技术。

我讲其实全文搜索也就一个名头够吓人的,说白了也简单,但这都是我自己的理解啊,其实除了solr你也可以通过数据库的方式实现全文搜索,当然首先要确定你的数据量不大。

全文搜索顾名思义,就是把一个东西的一部分可供搜索的内容放到一个字段里面,然后搜索的话是模糊搜索这个字段,这是我个人的理解。

举个例子

一个商品:name:冰箱,color:白色,type:sss111,那么我可以搞一个字段keyword:冰箱白色sss111,ok那么你搜索的时候输入型号’sss111’,就可以对这个字段进行like查询,可以匹配到的就是你要查出来的商品。

如果你们数据不多的情况这个方案其实也可行的,毕竟solr的全文搜索就是使用的这个概念,只不过他好在查询速度是数据库中使用like的无数倍,而且他还有可以配置分词器,毕竟一大堆有效的东西拼接在一起搜索起来肯定不是我们想象的那么简单。

针对solr的全文搜索速度,我以前做过一个测试,使用solr做模糊查询300万数据,1秒内返回….数据库的话我就不敢想象了。

就上面我举的例子,按照我们的搜索习惯我们可能直接输入’冰箱sss11’这有就算你用like也查不出来的,而solr的分词器只要你使用的合理就可以完美解决这种问题。

当然你们也可以自己写一套简单的分词器,或者引用一用的分词器去在代码里处理,反正我能想到的方案就这样了。

如果是我的话,我会选择第一个方案结合第二个方案一起去用的,毕竟第一个方案如果一部分规则可以定义好,查询起来还是比全文检索要快不少。

后来挂了电话,他跟我讲他们那边的技术不高兴做第二个方案…我一阵无语…不高兴这个词用的真tm的好。

我问他这种问题怎么不跟他们自己公司的技术沟通,他跟我说他初来乍到,跟他们处的还不熟,得先从我这探探底再去跟他们谈,免得被忽悠。

ok,以上就是这样,这里没有详细的讲solr,之后我会写一套关于solr的基本教程,一方面是给自己做知识梳理,做记录笔记,以供日后查看,另一方面也是把自己知道的分享给大家。

时间: 2024-10-16 21:42:21

搜索技术之我不懂的东西?的相关文章

百度和 Google 的搜索技术是一个量级吗?

著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:Kenny Chao 链接:http://www.zhihu.com/question/22447908/answer/21435705 来源:知乎 很多答案是从使用上讲的,我加两个技术方面的. 搜索引擎需要对抓取到的结果进行管理.当索引结果越来越多时,保证存储和查询速度,保证数万台服务器内容一致的难度越来越高.Google于03至06年左右公布了三篇论文,描述了GFS.BigTable.MapReduce三种技术以解

Solr搜索技术

Solr搜索技术 今日大纲 回顾上一天的内容: 倒排索引 lucene和solr的关系 lucene api的使用 CRUD 文档.字段.目录对象(类).索引写入器类.索引写入器配置类.IK分词器 查询解析器.查询对象(用户要查询的内容).索引搜索器(索引库的物理位置).排名文档集合(包含得分文档数组) 六种高级查询(相似度查询) 分词器(扩展词典.停用词典) 分页 得分(激励因子(作弊)) 高亮 排序 ●    Solr简介.运行 ●    Solr基本使用 ●    Solr Core 配置

网络空间大搜索技术

由于泛在网络空间.网络应用模式和大数据的发展,国内研究人员对网络空间搜索技术有了新的认识,逐渐形成了网络空间智慧搜索暨网络空间大搜索技术. 国家自然科学基金委员会第120期双清论坛于9月28日-29日在北京召开.本次论坛主题为网络空间智慧搜索基础研究,共邀请了国内外25所大学和科研机构的41位著名专家参会.本次论坛由信息科学部.管理科学部.地球科学部.数理科学部和政策局联合主办,论坛主席由方滨兴院士.吴曼青院士.贾焰教授和陈熙霖研究员共同担任. 论坛开幕式由信息二处刘克处长主持,信息科学部常务副

1.搜索引擎的历史,搜索引擎起步,发展,繁荣,搜索引擎的原理,搜索技术用途,信息检索过程,倒排索引,什么是Lucene,Lucene快速入门

 一: 1  搜索引擎的历史 萌芽:Archie.Gopher Archie:搜索FTP服务器上的文件 Gopher:索引网页 2  起步:Robot(网络机器人)的出现与spider(网络爬虫) Robot基于网络的,可以执行特定任务的程序 Spider:特殊的机器人,网络爬虫,爬取互联网上的信息(可以是文件,网络)----网络自动下载程序 3   发展阶段:excite,galaxy,yahoo这些公司做搜索 4   繁荣:infoseek,AltaVista,Google和百度 5  

搜索技术---solr

solr 企业站内搜索技术选型 在一些大型门户网站.电子商务网站等都需要站内搜索功能,使用传统的数据库查询方式实现搜索无法满足一些高级的搜索需求,比如:搜索速度要快.搜索结果按相关度排序.搜索内容格式不固定等,这里就需要使用全文检索技术实现搜索功能. 单独使用Lucene实现 单独使用Lucene实现站内搜索需要开发的工作量较大,主要表现在:索引维护.索引性能优化.搜索性能优化等,因此不建议采用. 使用Google或Baidu接口  通过第三方搜索引擎提供的接口实现站内搜索,这样和第三方引擎系统

Hadoop学习系列(2.Hadoop框架介绍与搜索技术体系介绍)

第一天 2.Hadoop框架介绍与搜索技术体系介绍 1. 大数据典型特性与分布式开发难点 2. Hadoop框架介绍与搜索技术体系介绍 3. Hadoop版本与特性介绍 4. Hadoop核心模块之HDFS分布式文件系统架构介绍 5. Hadoop核心模块之Yarn操作系统架构介绍 6. Linux安全禁用设置与JDK安装讲解 7. Hadoop伪分布式环境部署HDFS部分 8. Hadoop伪分布式环境部署Yarn和MR部分 9. Hadoop环境使用常见的错误集合 10. Hadoop环境常

《数学之美》阅读笔记之Google搜索技术浅析

博主虽然学计算机出身,惭愧的是对计算机的许多方向都不了解.决定从现在开始,多读书,对各个方向都看一看.刚看完数学之美这本书,介绍了许多数学原理在计算机行业的应用.博主想简单总结一下,本篇主要围绕搜索引擎技术来介绍. 当我们在Google搜索框里面打一个词时,Google可以立即返回全网的搜索结果.这看似简单的背后,其实有着很复杂的处理过程.能够这么快的返回查询结果,依赖于搜索引擎对全网知识所做的预处理.这个预处理就是网络爬虫和索引表.索引表类似于书本的目录,根据目录,可以迅速找到某些内容所在的页

不能只懂技术,而不懂产品(忘记了用户对产品的要求)

http://blog.csdn.net/dijchen/article/details/4292291 前些天,对当前的工作进行了一些梳理. 我当前做的是车载导航产品的测试,接下来的发展方向,我认为有两个:一是更多的了解车载导航这个产品,了解它的组成,它是怎么工作的,了解它的原理等等. 另一个方向,是学习测试的技术,尤其是白盒测试技术,自动化测试技术. 对比这两个方向,感觉产品这东西不长久,过个5年10年,车载导航产品到处都是,那时又要找新的产品作为利润增长点了.相对来说,技术这东西适合的面更

搜索技术(2)

自然语言处理 基于规则 基于统计 统计语言模型 中文分词 梁南元--查字典 郭进--统计语言模型 Basis Technology 通用分词器 葛显平.朱安 隐含马尔科夫模型 信息熵 贾里尼克.香农.雅各布森.乔姆斯基.弗兰德.哈克特 统计语音识别和自然语言处理 雅让斯基.布莱尔 阿米特.辛格 搜索引擎:自动下载尽可能多的网页--->建立快速有效的索引--->根据相关性对网页进行公平准确的排序 搜索原理:下载---->索引----->排序 布尔代数:George Boole:与.或