【阿里云产品公测】Opensearch使用体验和评测
作者:阿里云用户outofmemory
昨天晚上收到了阿里云发的邮件,Open search可以申请公测了,于是迫不及待申请了测试,审核人员很高效,过了不到俩小时给批下来了。
很开心,于是趁今天是周末,得把“outofmemory.cn”的全文检索,用open search实现一下。 汗! 之前用python实现的全文检索不是很稳定。
早上开工,先按照公测通过邮件的说明,新建了搜索应用,并做了激活。新建的搜索应用名称是“search4oom”, 意思是为outofmemory新建的搜索应用。
新建应用分为五个步骤:
1.第一个步骤需要填写下应用的名称和备注
2.第二个步骤需要设置搜索数据表的字段,需要设置字段的数据类型,是否是主键,是否支持多值(这个应该和solr的多值是一回事,意思是一个字段的值可以指定为一个数组),以及外表连接和多表join支持。 数据类型的下拉框中有TEXT,INT,FLOAT三种,数据类型有点少了,起码应该加上datetime,和string类型,对于一些时间敏感的应用可以方便的使用日期限定搜索,对于不需要参与索引的字符串字段应该设置为string类型。另外阿里云默认提供了咨询类,小说类,应用类和社区类搜索数据结构定义的模板,这个值得称赞,一般的应用都可以通过这四种模板稍作修改来支持。
3.第三步配置数据源,对于搜索应用同步索引离不开数据源,这一步很重要。 阿里云提供的数据源接入方式有两种一种是自动的,自动方式只支持阿里云自己的OSS和ODPS,由于我没用这两个产品,所以也就没有办法做自动导入索引数据了。 另外一种数据同步方式是“稍后手动上传”,这种方式可以手动传数据,可以通过sdk传数据。手动传数据只是一种测试手段,真实应用必须通过程序的sdk来做,目前支持的sdk有三种分别是java,php和.net。 前两种sdk文档已经写完了,.Net的尚没有文档。 选择“稍后手动上传”进入下一步
4.第四步是确认明细,会将前几步设置的应用信息,数据结构列出来确认一下
5.确认后就可以创建应用了
应用的创建过程很顺利,下一步需要手动来建索引了,因为我的网站是python开发的,而目前尚没有支持python的sdk,所以只有先看看帮助了,在帮助 中发现,阿里云提供了http的restful API,于是决定用python实现一个简单的sdk。 先看文档的授权说明部分,授权类似于OAuth2的授权,需要为请求生成一个token,token的生成算法用了mac-sha1。需要先在阿里云的开放搜索管理平台申请一个AccessKey, 申请很简单,按说明来就行,这里不赘述了。
下面进入python sdk的开发阶段,首先要实现的就是授权token的生成,由于我本人对java还比较熟悉所以下载了java的sdk,想先看下java sdk中的实现,下载了java的sdk jar包,然后在elicpse中新建了项目,并引用了此jar包,jar包中包含了完整的程序代码和注释,可以方便的查看授权的实现,值得称赞。 但是jar包中封装了junit,apache-commons等依赖jar包,显然是把sdk需要的jar包打到一个包里了,这样对于新手的好处是使用方便,但是把别人的包也打进来的做法不是很优雅,如果再提供一个简单版本,可以在maven中引用会更好一些,毕竟大家通常项目开发都是要用maven的。 经过一番探索,发现授权token生成的代码在com.opensearch.javasdk.CloudsearchClient类中的getAliyunSign方法中,按照此代码和官方授权部分的说明文档经过一番周折可以正常生成授权token了。
另外在管理后台还有设置搜索字段权重的功能,这一点很不错,我们可以根据需要设置不同字段的权重,但是这部分的没有找到相关的文档,有一些东西不是很理解,没有办法设置权重的表达式。
总体来讲,阿里云的开放搜索还是很值得期待的。 但是估计还有一些细节的东西需要调优。 另外对稳定性,和程序健壮性方面可能还需要进一步改善,在调试程序过程中发现几次“程序出现内部错误”的消息。
感谢阿里云提供的试用机会。
原文地址:http://bbs.aliyun.com/read/179261.html
参加活动:http://promotion.aliyun.com/act/aliyun/freebeta/
【阿里云产品公测】Opensearch使用体验和评测的更多相关文章
- 【阿里云产品公测】高大上的搜索服务OpenSearch,你值得拥有!
[阿里云产品公测]高大上的搜索服务OpenSearch,你值得拥有! 作者:阿里云用户trcher 一.前言: 在OpenSearch没出来之前,就一直想给网站做个搜索功能,虽然网站本身自带搜索功 ...
- 【阿里云产品公测】云引擎ACE初体验
作者:阿里云用户蓝色之鹰 :RYYjmG5; 来投票支持我把=i2]qj\ 序号2. [阿里云产品公测]云引擎ACE初体验:作者:蓝色之鹰 e(OKE7 序号10.[阿里云产品公测]结构化数据服 ...
- 【阿里云产品公测】消息队列服务MQS java SDK 机器人应用初体验
[阿里云产品公测]消息队列服务MQS java SDK 机器人应用初体验 作者:阿里云用户啊里新人 初体验 之 测评环境 由于MQS支持外网访问,因此我在本地做了一些简单测试(可能有些业余),之后 ...
- 【阿里云产品公测】大数据下精确快速搜索OpenSearch
[阿里云产品公测]大数据下精确快速搜索OpenSearch 作者:阿里云用户小柒2012 相信做过一两个项目的人都会遇到上级要求做一个类似百度或者谷歌的站内搜索功能.传统的sql查询只能使用like ...
- 【阿里云产品公测】结构化数据服务OTS之JavaSDK初体验
[阿里云产品公测]结构化数据服务OTS之JavaSDK初体验 作者:阿里云用户蓝色之鹰 一.OTS简单介绍 OTS 是构建在阿里云飞天分布式系统之上的NoSQL数据库服务,提供海量结构化数据的存储和实 ...
- 【阿里云产品公测】以开发者角度看ACE服务『ACE应用构建指南』
作者:阿里云用户mr_wid ,z)NKt# @I6A9do 如果感觉该评测对您有所帮助, 欢迎投票给本文: UO<claV RsfTUb)< 投票标题: 28.[阿里云 ...
- 【阿里云产品公测】阿里云ACE部署通用完整教程及评测
[阿里云产品公测]阿里云ACE部署通用完整教程及评测 作者:阿里云用户bailimei ACE应该是目前在公测的服务中应用最广泛的一项服务.在公测云引擎ACE前曾使用过新浪SAE,而ACE给我的最初印 ...
- 【阿里云产品公测】利用PTS服务优化网站数据库读写性能
[阿里云产品公测]利用PTS服务优化网站数据库读写性能 作者:阿里云用户千鸟 写这个帖子主要也是因为在用PTS测试网站的时候,手动访问网站进入报错页面,主要原因是数据库连接对象存在问题,导致并发多的时 ...
- 【阿里云产品公测】离线归档OAS,再也不用担心备份空间了
[阿里云产品公测]离线归档OAS,再也不用担心备份空间了 作者:阿里云用户莫须有3i 1 起步 1.1 初识OAS 啥是OAS,请看官方说明: 引用: 开放归档服务(Open Archive Se ...
- 【阿里云产品公测】云引擎ACE新手实战基于Wordpress
[阿里云产品公测]云引擎ACE新手实战基于Wordpress 作者:阿里云用户imnpc ACE(Aliyun Cloud Engine) 是一款弹性.分布式的应用托管环境,支持Java.php多种语 ...
随机推荐
- [原创]Devexpress XtraReports 系列 3 创建主从报表
昨天写了系列的第二篇Devexpress XtraReports 系列 2 创建表格报表 . 今天我们来继续系列 3 创建主从报表 首先我们来看看最后实现的效果.Demo最后附上. 开始吧. 第一步, ...
- Struts ForwardAction Example
In Struts MVC model, you have to go thought the Action Controller to get a new view page. In some ca ...
- mysql语句收藏
1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...
- qq邮箱发送
454 Authentication failed, please open smtp flag first!用QQ邮箱测试报错 我用QQ邮箱测试javamail发送邮件的功能,用户名密码设置正确,却 ...
- 下拉框QComboBox相关函数
QComboBox addItem (self, QString text, QVariant userData = QVariant())addItem (self, QIcon icon, QSt ...
- 使用timer8秒读取一次方法进行操作
public void TestofTimer() { System.Timers.Timer tt = new System.Timers.Timer(); //获取或设置引发 Elapsed 事件 ...
- String.Format格式说明(转)
C#格式化数值结果表 字符 说明 示例 输出 C 货币 string.Format("{0:C3}", 2) $2.000 D 十进制 string.Format("{0 ...
- 通过set和waitOne来控制子线程的运行和停止
public partial class Form1 : Form { //自动重置事件类 //主要用到其两个方法 WaitOne() 和 Set() , 前者阻塞当前线程,后者通知阻塞线程继续往下执 ...
- MVC6与Asp.net5
http://www.cnblogs.com/n-pei/p/4263148.html https://blogs.msdn.microsoft.com/scottgu/2015/04/30/asp- ...
- Javascript(JS)对Cookie的读取、删除、写入操作帮助方法
var CookieUtils = { get: function (name) { var cookieName = encodeURIComponent(name) + '=', cookieSt ...