博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从零开始使用Hubbledotnet进行全文搜索-前言
阅读量:5838 次
发布时间:2019-06-18

本文共 1019 字,大约阅读时间需要 3 分钟。

hot3.png

数据库检索时代

在开发1.0时候,我们需要设计一个对、、等相关的全文检索;那时候我们全使用的基于SQL Server 2005全文索引进行搜索。

通手这个手段进行的搜索开发相对简单,与我们去查询一个普通的表没有区别,例如:Select * from SearchAll where Contains(title, ”艺外”),但他的缺点也很明显,例如我只知道这个演艺事件可能包含了“”和”“,那么搜索的结束就有限了,我如果搜索:Select * from SearchAll where Contains(title, ”” or “四大法宝”),这样的搜索结果肯定不是我们想要的一个结果,因为全文索引是一个精准的匹配,另外一个问题是我们在使用数据库全文检索进行搜索时,速度与性能成为我们的瓶颈。

分词检索时代

后来我们在开发2.0时候,我要必须要去解决搜索的问题,于是我们想到了基于分词的搜索引擎,摆在我们面前的是从JAVA移植过来的,以及我们国人自主研发的。这就是解决了我们在艺外1.0开发时候遇到的我们搜索”黄升民四大法宝“时候,搜索不到的问题。

通过Lucene.net加盘古分词进行搜索“黄升民四大法宝”时候,他会把这个词戏拆分为多个关建词进行搜索,通过盘古分词器我们可以看到拆分为了“/四大/法宝/”。同时,Lucene.net使用了文件进行索引文件的存储与读取,因此也解决了我们在速度与性能上面的问题。

但我们在使用Lucene.net2.9以及最新的3.0进行测试后发现,我们要对搜索结果进行权重排序时遇到问题,很多自动排序的结果,并不是我们最理想的排序结果。

另一方面,随着我们艺外数据不断增加,Lucene.net的性能问题也会成为瓶颈,大家如果对Lucene.Net排序有更好的方法的话,可以分享给我。

基于多引擎的混合搜索时代

随着我们开发进程,我意识到我们必须要去解决更多的问题,我们要成为中国最好的媒体海量数据库,我们就必须去解决搜索的问题我们要去实现如下的目标:

  • 统一架构下的搜索,而不是像现在去单一的搜索资讯、媒体、演艺
  • 对搜索的关键词能更好的分词
  • 对搜索的结果能更好的排序
  • 能更快速的搜索出结果,提供更好的用户体验。

我想,这也许是基于混合搜索的时代。在下一篇文章里面,我将带大家去认识一个新的搜索方案。

转载于:https://my.oschina.net/jimmyzheng/blog/183272

你可能感兴趣的文章
写Use Case的一种方式,从oracle的tutorial抄来的
查看>>
【C#】protected 变量类型
查看>>
Ubuntu解压
查看>>
爬虫_房多多(设置随机数反爬)
查看>>
藏地密码
查看>>
爬虫去重(只是讲了去重的策略,没有具体讲实现过程,反正就是云里雾里)...
查看>>
react中将px转化为rem或者vw
查看>>
8816
查看>>
avcodec_open2()分析
查看>>
何如获取单选框中某一个选中的值
查看>>
paip.输入法编程----删除双字词简拼
查看>>
QQ悬浮返回顶部
查看>>
MySQL建表语句的一些特殊字段
查看>>
《Unix环境高级编程》读书笔记 第8章-进程控制
查看>>
腾讯前端二面题目详解
查看>>
mascara-1
查看>>
Jquery Form表单取值
查看>>
Android API level 与version对应关系
查看>>
Team Name
查看>>
String类
查看>>