刚刚过去的双11,真是给线下运营商好好上了一课。当今的互联网真是炙手可热,大家对互联网的热情是如此之高。相信电商之间的竞争将更加的激烈和残酷,不过,搜索,作为用户体验很重要的一点,各大电商也做的越来越好。但是,我相信软件只有开始,没有结束,搜索的业务也在不停的变化。搜索技术,你值得拥有。

现在才开始谈搜索,真是汗颜。Elasticsearch的教程都写了一堆了,现在才开始谈。我们用搜索引擎,竟然没有用搜索引擎的搜索功能,真是可笑。

好了,我写这篇博文,主要是想总结一下一般的搜索业务需求。不论你在哪个行业,这些搜索业务都是通用的。如果你也有这样的业务需求,恭喜你,你找到解决问题的途径了。

先来看看你是否有以下问题。

1、用户对检索结果不满意,希望查找的内容,没有排在前面。

2、用户搜索“苹果”,希望看到的是苹果公司的产品,而不是真正的水果。

3、用户希望你的软件能够容错,写个错别字,软件能够智能提示出来。

4、用户希望搜索足够的快,就几百万的数据,别让我等得睡着了。

。。。。。。

用户就是上帝,上帝的需求也太多了吧。

好吧,你没有遇见以上问题?你是做软件的吗?

根据以上需求及搜索领域的需求,我总结出,一个完善的搜索引擎,应该至少提供以下功能(或者说能够解决以下的所有问题)。当然,想BAIDU,GOOGLE这些公司,搜索引擎都做的比我列的要好多了。

汉语搜索业务总结

1)全角转半角(全角数字转半角数字)。

2)大写转小写(英文字母)

3)错别字纠正

4)自动补全或精简(比如输入北京市,自动缩减成北京,输入河北增加对河北省的补充,有待探索)

5)繁体转简体

6)拼音转汉字

7)同义词转换

8)加权处理(比如地名加权)

9)完善的领域词库

10)相关度排序(这个差点忘了)

目前ES只做到了前两项,瞧见了吗?什么是开源软件,这么一大堆需求,开源软件只解决了三个问题。不过,你什么都没做,别人就已经替你扫清了很多障碍,还不行吗?

文章来源:

搜索浅谈(Elasticsearch和Lucene4分享)的更多相关文章

  1. 浅谈elasticsearch 集群

    elasticsearch 集群 摘要: elasticsearch 集群 搭建elasticsearch的集群 现在假设我们有3台es机器,想要把他们搭建成为一个集群 基本配置 每个节点都要进行这样 ...

  2. 浅谈前端H5自定义分享实现方法

     引入jweinxin相关js文件,然后才可以做H5的分享 <script src="js/jweixin-1.2.0.js"></script> let ...

  3. 浅谈ELK日志分析平台

    作者:珂珂链接:https://zhuanlan.zhihu.com/p/22104361来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 小编的话 “技术干货”系列文章 ...

  4. 浅谈Android应用保护(一):Android应用逆向的基本方法

    对于未进行保护的Android应用,有很多方法和思路对其进行逆向分析和攻击.使用一些基本的方法,就可以打破对应用安全非常重要的机密性和完整性,实现获取其内部代码.数据,修改其代码逻辑和机制等操作.这篇 ...

  5. 【转载】浅谈游戏开发之2D手游工具

    浅谈游戏开发之2D手游工具 来源:http://www.gameres.com/459713.html 游戏程序 平台类型: iOS Android  程序设计: 其它  编程语言:   引擎/SDK ...

  6. 浅谈 js 字符串 search 方法

    原文:浅谈 js 字符串 search 方法 这是一个很久以前的事情了,好像是安心兄弟在学习js的时候做的练习.具体记不清了,今天就来简单分析下 search 究竟是什么用的. 从字面意思理解,一个是 ...

  7. 浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍

    浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍 前记 自己是搞编程的,首先我是一个菜鸟,接触计算机这么久了,感觉很多计算机方面的技术和知识朦朦胧胧.模模糊糊,貌似有些贻笑大方了:所 ...

  8. URL跳转与webview安全浅谈

    URL跳转与webview安全浅谈 我博客的两篇文章拼接在一起所以可能看起来有些乱 起因 在一次测试中我用burpsuite搜索了关键词url找到了某处url我测试了一下发现waf拦截了指向外域的请求 ...

  9. 【ASP.NET MVC系列】浅谈ASP.NET MVC运行过程

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

随机推荐

  1. Apache CXF实现Web Service(3)——Tomcat容器和不借助Spring的普通Servlet实现JAX-RS(RESTful) web service

    起步 参照这一系列的另外一篇文章: Apache CXF实现Web Service(2)——不借助重量级Web容器和Spring实现一个纯的JAX-RS(RESTful) web service 首先 ...

  2. maven 构建spring ssh mybatis 配置

    详情参与 http://blog.csdn.net/yuguiyang1990/article/details/8811817 前面我们使用Maven构建了Struts2项目,这里我们来试一下Hibe ...

  3. mybatis处理查询map列表属性为null的问题,而导致查询map无该key对象

    1.常规处理方法(数据库以mysql为例) IFNULL(m.last_use_time,) ) ) as last_lat if判断是否为null,设置一个默认值. 2.前台jsp页面处理,判断是否 ...

  4. C#创建UTF8无BOM文本文件

    In order to omit the byte order mark (BOM), your stream must use a custom instance of UTF8Encoding i ...

  5. POJ3525 Most Distant Point from the Sea(半平面交)

    给你一个凸多边形,问在里面距离凸边形最远的点. 方法就是二分这个距离,然后将对应的半平面沿着法向平移这个距离,然后判断是否交集为空,为空说明这个距离太大了,否则太小了,二分即可. #pragma wa ...

  6. POJ 2017

    #include<iostream> #include<stdio.h> using namespace std; int main() { //freopen("t ...

  7. I/O复用:异步聊天

    一.I/O复用 在<TCP套接字编程>的同步聊天程序中,我们看到TCP客户同时处理两个输入:标准输入和TCP套接字.考虑在客户阻塞于标准输入fgets调用时,服务器进程被杀死,服务器TCP ...

  8. TCP套接字编程

    一.套接字(socket)函数 图1给出了在一个TCP客户与服务器通信的流程.服务器首先启动,稍后某个客户启动,它试图连接到服务器.假设客户给服务器发送一个请求,服务器处理该请求,并且给客户发回一个相 ...

  9. ExtJs布局之tabPanel

    <!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...

  10. Android核心分析之二十七Android GDI 之SurfaceFlinger之动态结构示

           SurfaceFlinger对象建立过程示意 1 SurfaceSession的建立 客户端请求建立Surface时,首先在要与SurfaceFlinger建立一个Session,然后再 ...