神马小说:使用opensearch打造高性能搜索服务
神马小说---
使用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越做越好,带给大家更多的福利。
神马小说:使用opensearch打造高性能搜索服务的更多相关文章
- EasySwoole+ElasticSearch打造 高性能 小视频服务系统
EasySwoole+ElasticSearch打造高性能小视频服务 第1章 课程概述 第2章 EasySwoole框架快速上手 第3章 性能测试 第4章 玩转高性能消息队列服务 第5章 小视频服务平 ...
- 亚马逊云推出基于机器学习的企业搜索服务Kendra,剑指微软
近日,在AWS re:Invent全球大会上,亚马逊发布了五项新的基于机器学习的人工智能 (AI) 服务. 这五项服务包括机器学习驱动的企业搜索.代码审核与分析.欺诈检测.医疗转录和 AI 预测的人工 ...
- 翻译-使用Ratpack和Spring Boot打造高性能的JVM微服务应用
这是我为InfoQ翻译的文章,原文地址:Build High Performance JVM Microservices with Ratpack & Spring Boot,InfoQ上的中 ...
- 记一次数据库调优过程(IIS发过来SQLSERVER 的FETCH API_CURSOR语句是神马?)
记一次数据库调优过程(IIS发过来SQLSERVER 的FETCH API_CURSOR语句是神马?) 前几天帮客户优化一个数据库,那个数据库的大小是6G 这麽小的数据库按道理不会有太大的性能问题的, ...
- 【阿里云产品公测】高大上的搜索服务OpenSearch,你值得拥有!
[阿里云产品公测]高大上的搜索服务OpenSearch,你值得拥有! 作者:阿里云用户trcher 一.前言: 在OpenSearch没出来之前,就一直想给网站做个搜索功能,虽然网站本身自带搜索功 ...
- 开放搜索服务OpenSearch
开放搜索服务系统架构:从系统.平台到开放服务 搜索是各类网站和数据类APP的标配功能.目前开发者一般基于开源搜索系统,例如ElasticSearch.Solr.Sphinx等自己搭建搜索服务,系统定制 ...
- 使用Ratpack和Spring Boot打造高性能的JVM微服务应用
使用Ratpack和Spring Boot打造高性能的JVM微服务应用 这是我为InfoQ翻译的文章,原文地址:Build High Performance JVM Microservices wit ...
- 【转】DSP是什么--DSP是神马东东??
原文:http://www.eepw.com.cn/article/272908.htm 导读:本文主要介绍的是DSP是什么,不懂得童鞋们快随小编一起学习一下DSP到底是个神马东东吧! 本文引用地址: ...
- 给你的网站添加谷歌AMP、百度MIP、神马MIP链接自动提交功能
我们在做网站的时候,经常会听到别人说SEO优化,网站优化等等.但是我们经常听的云里雾里的,但是经过我们运营一段时间之后,我们慢慢的就会熟悉了,知道什么是SEO.SEO中文译名为搜索引擎优化,既然是叫搜 ...
随机推荐
- Memcached 实例
建立Manager类 package com.alisoft.sme.memcached; import java.util.Date; import com.danga.MemCached.MemC ...
- Session和Cookie的分析与区别
首先说一下Web.config文件中的cookieless="false"的理解 cookieless="false"表示: 如果用户浏览器支持cookie时启 ...
- C++中使用接口
面向对象的语言诸如JAVA提供了Interface来实现接口,但C++却没有这样一个东西,尽管C++ 通过纯虚基类实现接口,譬如COM的C++实现就是通过纯虚基类实现的(当然MFC的COM实现用了嵌套 ...
- Mahout之深入navie Bayesian classifier理论
转自:http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html 1.1.摘要 贝叶斯分类是一类分 ...
- Unity中的C#规则
命名 文件名和Class要一致(CamelCase) 类公共和保护类型Property(CamelCase) 类的公共和保护类型Fields(CamelCase)* 先采用.Net的命名方法,如果出现 ...
- 一条结合where、group、orderby的linq语法
DataTable dt = (from x in dsResult.Tables[0].AsEnumerable() where DataTrans.CBoolean(x["IsCheck ...
- thinkphp 3+ 观后详解 (1)
最近面试了一些公司,发现自己的对于架构能力的不足,于是决定开始从最基本的代码做起.先看看大牛们怎么架构整个框架的.鉴于国外的框架比较难懂,于是就选择了国内比较流行的thinkphp来进行研究. 下面写 ...
- Object-C基础
cocoa 类: 传统的写法:Demo.h // // Demo.h // demoClass // // Created by 王 on 13-12-16. // Copyright (c) 201 ...
- Ajax的常用框架有哪些?
AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML),是创建交互式Web应用的主要开发技术.互联网中也有大量的关于AJAX的框架,本文汇总了最常 ...
- C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件
阅读本文可首先参考: C++学习笔记之输入.输出和文件 测试数据: /*读取txt文件到二维数组*/ #include <iostream> #include <fstream> ...