神马小说---

使用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. Memcached 实例

    建立Manager类 package com.alisoft.sme.memcached; import java.util.Date; import com.danga.MemCached.MemC ...

  2. Session和Cookie的分析与区别

    首先说一下Web.config文件中的cookieless="false"的理解 cookieless="false"表示: 如果用户浏览器支持cookie时启 ...

  3. C++中使用接口

    面向对象的语言诸如JAVA提供了Interface来实现接口,但C++却没有这样一个东西,尽管C++ 通过纯虚基类实现接口,譬如COM的C++实现就是通过纯虚基类实现的(当然MFC的COM实现用了嵌套 ...

  4. Mahout之深入navie Bayesian classifier理论

    转自:http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html 1.1.摘要 贝叶斯分类是一类分 ...

  5. Unity中的C#规则

    命名 文件名和Class要一致(CamelCase) 类公共和保护类型Property(CamelCase) 类的公共和保护类型Fields(CamelCase)* 先采用.Net的命名方法,如果出现 ...

  6. 一条结合where、group、orderby的linq语法

    DataTable dt = (from x in dsResult.Tables[0].AsEnumerable() where DataTrans.CBoolean(x["IsCheck ...

  7. thinkphp 3+ 观后详解 (1)

    最近面试了一些公司,发现自己的对于架构能力的不足,于是决定开始从最基本的代码做起.先看看大牛们怎么架构整个框架的.鉴于国外的框架比较难懂,于是就选择了国内比较流行的thinkphp来进行研究. 下面写 ...

  8. Object-C基础

    cocoa 类: 传统的写法:Demo.h // // Demo.h // demoClass // // Created by 王 on 13-12-16. // Copyright (c) 201 ...

  9. Ajax的常用框架有哪些?

    AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML),是创建交互式Web应用的主要开发技术.互联网中也有大量的关于AJAX的框架,本文汇总了最常 ...

  10. C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件

    阅读本文可首先参考: C++学习笔记之输入.输出和文件 测试数据: /*读取txt文件到二维数组*/ #include <iostream> #include <fstream> ...