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

那个谁,我这里现在有个问题要请教下你,这边有个站,客户要加个需求,就是需要一个搜索的功能,大概搜索的属性差不多有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的基本教程,一方面是给自己做知识梳理,做记录笔记,以供日后查看,另一方面也是把自己知道的分享给大家。

搜索技术之我不懂的东西?相关推荐

  1. 大数据搜索引擎技术_网络数据搜索技术

    大数据搜索引擎技术 Nowadays this is a very big problem to search appropriate data on web search engines. This ...

  2. 非结构化视频搜索技术

    非结构化视频搜索技术 2006-10-10 22:46 ■ 李蓬涛 编者按:视频搜索技术针对音视频这类非结构化数据,使用了语音识别.自动抽帧和内容自动关联等技术,真正做到了从内容上对视频进行搜索.20 ...

  3. 豌豆荚工程师谈其新版应用搜索技术

    豌豆荚工程师谈其新版应用搜索技术 豌豆荚工程师谈其新版应用搜索技术 豌豆荚工程师谈其新版应用搜索技术 作者 水羽哲 发布于 2012年12月6日 领域         语言 & 开发     ...

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

    著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:Kenny Chao 链接:http://www.zhihu.com/question/22447908/answer/2 ...

  5. 【原创】使用Golang的电商搜索技术架构实现

    作者:黑夜路人 时间:2022年11月 一.背景: 现在搜索技术已经是非常主流的应用技术,各种优秀的索引开源软件已经很普遍了,比如 Lucene/Solr/Elasticsearch 等等主流搜索索引 ...

  6. 产品经理从零到一技术进阶:不懂代码也能愉快地与开发相处

    产品经理从零到一技术进阶:不懂代码也能愉快地与开发相处 原文链接:http://mp.weixin.qq.com/s?__biz=MjAzNzMzNTkyMQ==&mid=205836688& ...

  7. 作为一名程序员如何优雅的使用谷歌搜索技术(Google)?

    作为一名程序员如何优雅的使用谷歌搜索技术(Google)? 大家都知道作为一名程序员Google的作用很大,但是Google又很难优雅的使用.需要轻功高明.当然也有一些人做Google的镜像,但是发展 ...

  8. 阿里飞猪搜索技术的应用与创新

    分享嘉宾:林睿 阿里飞猪 编辑整理:杜正海.Hoh 出品平台:DataFunTalk 导读:旅行场景的搜索起初是为了满足用户某种特定的强需求而出现的,如机票.火车票.酒店等搜索.这些需求有着各自不同的 ...

  9. ajax+lucene pdf,基于Ajax/Lucene的站内搜索技术研究

    摘要: 站内搜索引擎是找出网站重要信息的必要工具,高效的站内搜索将有助于提升网站的价值,发挥网站应有的作用.虽然现在一些网络巨头已开始研究并应用这类工具,但整个互联网行业中,受制于技术的门槛,真正的站 ...

最新文章

  1. Python学习笔记1 Python基础
  2. php模拟超级课程表,一个功能完善、UI简洁的仿超级课程表的课表控件 TimetableView...
  3. Shiny平台构建与R包开发(一)——ui布局
  4. 隐藏十年竟无人发现!Sudo 漏洞被曝出:无需密码就能获取 root 权限
  5. Android EditText不弹出输入法焦点问题的总结
  6. 运动皮层的树突状钙信号驱动光学脑机接口
  7. python零基础怎么学-Python怎么学?零基础如何顺利入门Python?
  8. prerenderspaplugin 打包完成后如何让百度收录_如何提高网站流量、排名?
  9. linux某个目录环境变量,在linux下加环境变量或者是把某个目录加到环境变量
  10. 爬虫 | urllib入门+糗事百科实战
  11. firefox flash-plugin怎样安装
  12. DBMS_PIPE包
  13. 如何在JavaScript中检查变量是否为整数?
  14. 【转】高并发情况下的单例模式
  15. 验证DG最大性能模式下使用ARCH/LGWR及STANDBY LOG的不同情况
  16. jquery 祖先 parent,parents,parentUtil函数
  17. paip.提升性能3倍--使用栈跟VirtualAlloc代替堆的使用.
  18. DLL注入——使用注册表
  19. meterpreter 监控桌面命令(screenshare)
  20. 上证50基金有哪些_哪一只上证50指数基金最值得关注?

热门文章

  1. 12口三层网管交换机的冰火两重天 (EMS试验和高低温测试)
  2. oracle手机号码检验字数_oracle正则表达式匹配手机特号
  3. Afaria 7 补丁发布 - SP4
  4. 2022-05-20 工作记录--React-多个className的三元表达式写法
  5. C语言实现编程题黑色星期五
  6. 大连理工大学软件学院博客地址
  7. 【QT】qt实现多人屏幕共享系统
  8. 相机稳定性测试软件,用于天文观测的科学级相机成像和测试软件的研究
  9. 关于c语言的教学方法,浅谈C语言实例教学方法
  10. BSV节点软件升级版本v1.0.9正式发布