zoukankan      html  css  js  c++  java
  • [自爆系列]浅谈我对搜索的错误了解

    1:很久以来,对搜索的认识一直停留在百度搜索,觉得这种东西自己的项目关系不大

    image

    2:学会了sql之后,对搜索的了解上升到模糊查询,LIKE '%****%',

    3:了解到lucene.NET的存在后,知道了社区里面有专业的搜索方案,但中文分词缺乏,所以我拒绝使用。

    一直到我经历了下面这些丑事

       1:数据库的一个表分表后,要得到满足条件一组的数据,以前简单的select出来,现在select一下,数据库内存就不够了或io就满了

       2:为了给主要业务数据库做主从,把一个表写的非常频繁的字段单独拎出来,放在另外一个数据库里面,然后就无法按照这个字段排序了

       3:要读出一组数据,排序是很复杂的那种,写出来的sql不是吧cpu弄挂了,就是把io弄挂了

    然后这些事情让 我司的一个搜索组搞定了。。。。。。。。。。。

    刨根问底,是我以前总认为搜索和检索词有关系,有搜索就有检索词,没有检索词就没有搜索

    也自己知识面太狭小,实际上,只要是数据库做了主从或读写分离,数据表基本上都都存在横向拆分和纵向拆分,这个时候如果要得到一个简单的数据列表,如果走普通的sql,数据库的io随着压力的增加,肯快就挂掉了,

    所以,很多公司 都将搜索作为系统数据聚合的工具,各种列表走搜索,各种详情页面则直接走数据库+缓存

    对与lucene.NET,性能自然不是问题,加上现在可以跑在mono上,性能更是没问题,作为数据聚合的工具,没的说。

    关于中文检索,有盘古分词,小伙伴们说,效果还过得去。不过我更看中lucene.NET作为数据库聚合的手段,用来显示各种列表。

  • 相关阅读:
    react文本溢出hover气泡显示全部文本——JS判断文本溢出
    ecosystem.config
    git删除中间某次提交
    HTML5 新元素
    HTML5存储
    简述LVS(Linux虚拟服务器)
    简述线程池
    网络协议基础
    JVM常用性能检测工具
    线程间的“通信”方法
  • 原文地址:https://www.cnblogs.com/qqloving/p/3390050.html
Copyright © 2011-2022 走看看