神马小说---

使用opensearch打造高性能搜索服务

[使用背景]

神马小说是最早使用opensearch的用户,和opensearch一起成长。目前神马小说每天2亿搜索pv,1000w 用户。产品形态分全网sc,垂搜,app三大块。

opensearch在使用中表现稳定可靠,每天平均latency 40ms,平均qps 2500。

[使用过程]

神马小说团队有着资深的搜索背景,在小说产品刚起步的时候,面临着自己搭建引擎或者选用opensearch的基础方向问题。当时选择opensearch的主要原因:

1、信任opensearch团队,opensearch团队以往的经历展现了意志坚定,做事靠谱的优秀品质;

2、opensearch方便易用,在web页面新建一个应用,配置索引字段,使用数据接口灌几篇doc,引擎就搭好生效了,普通工程师几天就能熟悉掌握opensearch的使用;

3、引擎的部署、升级、扩容是系统运维上非常麻烦的事情,使用opensearch能省去一大摊事情,更好的把精力投入到业务上。

4、opensearch对于文本类模糊搜索有非常完善的解决方案,自定义多维度分词、丰富的文本相关性feature,低latency、高QPS,都很好的满足我们的需求。

事实证明了我们当时的选择是正确的。

当然使用opensearch过程中也踩过坑。比如索引字段类型可以在线更改功能刚上线时,更改后导致该索引失效,搜索无结果;还有早期搜索偶尔会无结果,查出是opensearch的一个bug。

踩坑是难以避免的,就像程序一定存在bug,重要的是踩坑后的后继处理速度和处理方案。opensearch在这方面的表现让人放心。在群里贴出问题后,opensearch同学会迅速答复,然后热情参与问题跟踪,直到解决。即使晚上出现突发情况时,从没发生找不到人帮忙的情况。

[需求和建议]

再聊聊使用opensearch遇到的功能性问题。

1、opensearch不支持全量重建,要一条条揪出过期数据然后删除,这个不方便。

OpenSearch解答:目前API全量功能已经在规划中,敬请期待。

2、期望opensearch能支持应用别名。用户使用应用别名A,A实际指向A1,要切换应用时,把A指向A2,对用户透明。

OpenSearch解答:应用灰度发布的功能也已经在规划中,敬请期待。

[总结]

最近改版的前端页面很好用,杭州、上海两地机房的投入让服务更加稳定可靠,离线流程的升级、精排功能的增强让用户有了更好的使用体验。

祝opensearch越做越好,带给大家更多的福利。

神马小说:http://m.sm.cn/novel/

马上申请opensearch免费公测

微博互动

神马小说:使用opensearch打造高性能搜索服务的更多相关文章

  1. EasySwoole+ElasticSearch打造 高性能 小视频服务系统

    EasySwoole+ElasticSearch打造高性能小视频服务 第1章 课程概述 第2章 EasySwoole框架快速上手 第3章 性能测试 第4章 玩转高性能消息队列服务 第5章 小视频服务平 ...

  2. 亚马逊云推出基于机器学习的企业搜索服务Kendra,剑指微软

    近日,在AWS re:Invent全球大会上,亚马逊发布了五项新的基于机器学习的人工智能 (AI) 服务. 这五项服务包括机器学习驱动的企业搜索.代码审核与分析.欺诈检测.医疗转录和 AI 预测的人工 ...

  3. 翻译-使用Ratpack和Spring Boot打造高性能的JVM微服务应用

    这是我为InfoQ翻译的文章,原文地址:Build High Performance JVM Microservices with Ratpack & Spring Boot,InfoQ上的中 ...

  4. 记一次数据库调优过程(IIS发过来SQLSERVER 的FETCH API_CURSOR语句是神马?)

    记一次数据库调优过程(IIS发过来SQLSERVER 的FETCH API_CURSOR语句是神马?) 前几天帮客户优化一个数据库,那个数据库的大小是6G 这麽小的数据库按道理不会有太大的性能问题的, ...

  5. 【阿里云产品公测】高大上的搜索服务OpenSearch,你值得拥有!

    [阿里云产品公测]高大上的搜索服务OpenSearch,你值得拥有! 作者:阿里云用户trcher ​ 一.前言: 在OpenSearch没出来之前,就一直想给网站做个搜索功能,虽然网站本身自带搜索功 ...

  6. 开放搜索服务OpenSearch

    开放搜索服务系统架构:从系统.平台到开放服务 搜索是各类网站和数据类APP的标配功能.目前开发者一般基于开源搜索系统,例如ElasticSearch.Solr.Sphinx等自己搭建搜索服务,系统定制 ...

  7. 使用Ratpack和Spring Boot打造高性能的JVM微服务应用

    使用Ratpack和Spring Boot打造高性能的JVM微服务应用 这是我为InfoQ翻译的文章,原文地址:Build High Performance JVM Microservices wit ...

  8. 【转】DSP是什么--DSP是神马东东??

    原文:http://www.eepw.com.cn/article/272908.htm 导读:本文主要介绍的是DSP是什么,不懂得童鞋们快随小编一起学习一下DSP到底是个神马东东吧! 本文引用地址: ...

  9. 给你的网站添加谷歌AMP、百度MIP、神马MIP链接自动提交功能

    我们在做网站的时候,经常会听到别人说SEO优化,网站优化等等.但是我们经常听的云里雾里的,但是经过我们运营一段时间之后,我们慢慢的就会熟悉了,知道什么是SEO.SEO中文译名为搜索引擎优化,既然是叫搜 ...

随机推荐

  1. Hibernate理论

    1.什么是Hibernate? Hibernate是数据持久层的一个轻量级框架.数据持久层的框架有很多比如:iBATIS,myBatis,Nhibernate,Siena等等.并且Hibernate是 ...

  2. Ubuntu下Android编译环境的配置

    从安装操作系统到编译程序结束,过程大致如下. 1. Ubuntu Linux操作系统安装软件包.使用 Ubuntu 14.04 Desktop系统.安装Linux系统到VMWare虚拟机上. 2. 完 ...

  3. listview的tag

    tag,记录一行数据的唯一标识,小DEMO: lsShow.Items.Add("洗衣机"); lsShow.Items[].Tag = "我不愿让你一个人"; ...

  4. LeetCode 刷题记录

    写在前面:因为要准备面试,开始了在[LeetCode]上刷题的历程.LeetCode上一共有大约150道题目,本文记录我在<http://oj.leetcode.com>上AC的所有题目, ...

  5. JavaServer Faces 2.2 requires Dynamic Web Module 2.5 or newer

    Description Resource Path Location Type JavaServer Faces 2.2 can not be installed : One or more cons ...

  6. iOS的几种定时器

    //gcd的定时器timer必须先保存为一个属性或者成员变量 @property (nonatomic , assign) dispatch_source_t timer; //第一种 每一秒执行一次 ...

  7. jpa 支持(sql)JDBC标准语句

    =====================dao================================ package com.jb.xs.Dao.impl; import java.uti ...

  8. 如何在协作开发安卓项目中打jar包给合作人

    一般情况下,id都是安卓自动生成的.使用时只要用R.id.xx就可以了.但是,在合作开发安卓时,需要将自己开发的代码部分打成jar包,甚至做混淆. 这就需要使用java的反射机制.在取id时使用如下类 ...

  9. 两个ERP 库存调拨

    (A) ERP 负责线上销售,公司为扩大规模,发展线下实体 采用另一套ERP(B) A 和B  都是 单独的ERP  ,为了使两个ERP 能高效地工作,需开发一个单独衔接模块实现 ,库存的调拨,新品的 ...

  10. KMP算法初探

    [edit by xingoo] kmp算法其实就是一种改进的字符串匹配算法.复杂度可以达到O(n+m),n是参考字符串长度,m是匹配字符串长度. 传统的算法,就是匹配字符串与参考字符串挨个比较,如果 ...