阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 15193阅读
  • 13回复

[免费公测]【阿里云产品公测】Opensearch使用体验和评测

级别: 小白
发帖
6
云币
9
昨天晚上收到了阿里发的邮件,Open search可以申请公测了,于是迫不及待申请了测试,审核人员很高效,过了不到俩小时给批下来了。 U!uJ)mm  
很开心,于是趁今天是周末,得把“outofmemory.cn”的全文检索,用open search实现一下。 汗! 之前用python实现的全文检索不是很稳定。 6m(? (6+;K  
早上开工,先按照公测通过邮件的说明,新建了搜索应用,并做了激活。新建的搜索应用名称是“search4oom”, 意思是为outofmemory新建的搜索应用。 )R'%SLw  
新建应用分为五个步骤: r6 3l(  
  1. 第一个步骤需要填写下应用的名称和备注
  2. 第二个步骤需要设置搜索数据表的字段,需要设置字段的数据类型,是否是主键,是否支持多值(这个应该和solr的多值是一回事,意思是一个字段的值可以指定为一个数组),以及外表连接和多表join支持。 数据类型的下拉框中有TEXT,INT,FLOAT三种,数据类型有点少了,起码应该加上datetime,和string类型,对于一些时间敏感的应用可以方便的使用日期限定搜索,对于不需要参与索引的字符串字段应该设置为string类型。另外阿里云默认提供了咨询类,小说类,应用类和社区类搜索数据结构定义的模板,这个值得称赞,一般的应用都可以通过这四种模板稍作修改来支持。
  3. 第三步配置数据源,对于搜索应用同步索引离不开数据源,这一步很重要。 阿里云提供的数据源接入方式有两种一种是动的,自动方式只支持阿里云自己的OSS和ODPS,由于我没用这两个产品,所以也就没有办法做自动导入索引数据了。 另外一种数据同步方式是“稍后手动上传”,这种方式可以手动传数据,可以通过sdk传数据。手动传数据只是一种测试手段,真实应用必须通过程序的sdk来做,目前支持的sdk有三种分别是java,php和.net。 前两种sdk文档已经写完了,.Net的尚没有文档。 选择“稍后手动上传”进入下一步
  4. 第四步是确认明细,会将前几步设置的应用信息,数据结构列出来确认一下
  5. 确认后就可以创建应用了
kp<Au)u  
应用的创建过程很顺利,下一步需要手动来建索引了,因为我的网站是python开发的,而目前尚没有支持python的sdk,所以只有先看看帮助了,在帮助 中发现,阿里云提供了http的restful API,于是决定用python实现一个简单的sdk。 先看文档的授权说明部分,授权类似于OAuth2的授权,需要为请求生成一个token,token的生成算法用了mac-sha1。需要先在阿里云的开放搜索管理平台申请一个AccessKey, 申请很简单,按说明来就行,这里不赘述了。 qpCaW0]7  
下面进入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了。 4K7ved)  
另外在管理后台还有设置搜索字段权重的功能,这一点很不错,我们可以根据需要设置不同字段的权重,但是这部分的没有找到相关的文档,有一些东西不是很理解,没有办法设置权重的表达式 |nnFjGC`~  
总体来讲,阿里云的开放搜索还是很值得期待的。 但是估计还有一些细节的东西需要调优。 另外对稳定性,和程序健壮性方面可能还需要进一步改善,在调试程序过程中发现几次“程序出现内部错误”的消息。 KU oAxA  
感谢阿里云提供的试用机会。
[ 此帖被outofmemory在2014-10-12 21:16重新编辑 ]
本帖最近评分记录: 1 条评分 云币 +20
qiujin2012 云币 +20 支持他,就给他投票,猛戳: http://bbs.aliyun.com/read/178799.html 2014-10-13
发帖
329
云币
404
只看该作者 沙发  发表于: 2014-10-12
回 楼主(outofmemory) 的帖子
  • 程序出现内部错误 这个错误提示不太好,应该是用户用法有问题,但是目前没有把所有的error 都映射出来,有些错误就统一用系统内部错误代替了。
  • 查询时候排序规则可以通过设置公式来调节,比如查询default:'搜索', title和body都索引到了default索引下,但是期望title上的文本相关性权重高一些,举例:text_relevance(title)*3+text_relevance(body)*0.9, 文档可以看http://help.opensearch.aliyun.com/index.php?title=App_manager_formula
  • 搜索稳定性运行一年以来一直比较稳定
8,vP']4r%  
[ 此帖被辉天在2014-10-12 22:21重新编辑 ]
级别: 论坛版主
发帖
3414
云币
8980

只看该作者 板凳  发表于: 2014-10-13
python 好高大上  幸亏项目是java的
发帖
329
云币
404
只看该作者 地板  发表于: 2014-10-13
PS:楼主提到的 r`h".=oD  
    “数据类型的下拉框中有TEXT,INT,FLOAT三种,数据类型有点少了” uhp.Yv@c  
你看到的这3个类型指的是doc数据中的类型 {s*2d P)  
再接着下一步定义索引结构时候,有更丰富的类型, TEXT,STRING, INT8~INT64, DOUBLE等 #Q*V9kvU/H  
date类型可以通过使用INT64 BNI)y@E^X  
n&?)gKL0g  
我在这个教程中有说过: http://bbs.aliyun.com/read/168405.html?spm=5176.7189909.0.0.ciGmy2&fpage=2  的 2楼: 2. 理解2个表结构(数据表结构和索引表结构)的概念 M'|p<SO]  
你提到的三种类型属于数据表结构中的, 最终对用户有意义的是索引表结构中的类型 oVPr`]  
比如你在数据表结构中定义了 INT类型的字段, 则在下一步索引表结构中你可以选择是INT8~INT64中的哪个 g%!U7CM6h  
8Gnf_lkI  
mdEl CC0  
数据表结构存在的考虑是:有些用户有数据处理的需求,产品上将会开放一些插件,让用户配置是针对哪个数据字段的;另外数据进入系统后在建索引之前会做基本的数据验证,如果数据有错误,反馈给控制台。 .uxM&|0H  
5/7(>ivn  
!@N?0@$/  
K :~tZ  
ACZK]~Y'N*  
M6Np!0G  
a_?b <  
[ 此帖被辉天在2014-10-13 11:59重新编辑 ]
发帖
994
云币
1363
只看该作者 4楼 发表于: 2014-10-13
支持他,就给他投票,猛戳: Q'Osw"  
http://bbs.aliyun.com/read/178799.html
〉〉论坛经验-《阿里云服务器从入门到精通》精华汇总
http://bbs.aliyun.com/read/135619.html?amp;displayMode=1#tpc
发帖
337
云币
538
只看该作者 5楼 发表于: 2014-10-13
另外jar包这个我再说下,目前这么做主要是为了使用方便,但也存在楼主说的问题,这个我们后续会解决,现在的话可以解压后手动把依赖的jar包去掉
级别: 小白
发帖
19
云币
28
只看该作者 6楼 发表于: 2014-10-13
Re【阿里云产品公测】Opensearch使用体验和评测
没图没真相啊
级别: 小白
发帖
6
云币
9
只看该作者 7楼 发表于: 2014-10-25
Re【阿里云产品公测】Opensearch使用体验和评测
现在python的api我这边已经开发完毕,使用上没有什么问题了,有需要的吗?
级别: 小白
发帖
6
云币
9
只看该作者 8楼 发表于: 2014-10-26
Re【阿里云产品公测】Opensearch使用体验和评测
看来在阿里云上用python的不多呀
级别: 小白
发帖
2
云币
2
只看该作者 9楼 发表于: 2014-12-23
回8楼outofmemory的帖子
终于找到用python的兄弟了。 5&s6(?,Eu  
想问下python怎么生成授权 dnLjcHFj&  
}oZ8esZU2  
python生成授权中的hmac.new生成的是16 进制小写字符串 v,}C~L3  
hOB<6Tm[  
但是我看phpsdk中的hmac开启了true输出原始二进制数据,不知道用python怎么写 xK6`|/e  
IaeO0\ 4E  
谢谢
级别: 小白
发帖
2
云币
2
只看该作者 10楼 发表于: 2015-01-02
Re【阿里云产品公测】Opensearch使用体验和评测
楼主能共享一下python版本的sdk吗?
级别: 小白
发帖
6
云币
9
只看该作者 11楼 发表于: 2015-01-30
回10楼11号猫弟的帖子
不好意思,好久没有看阿里云的帖子,刚看到。 kKF=%J?X  
#6c,_!  
已将我写的sdk分享出来了: 请移步访问:outofmemory.cn/code-snippet/35876/python-aliyun-open-search-sdk
级别: 小白
发帖
6
云币
9
只看该作者 12楼 发表于: 2015-01-30
回9楼少狐的帖子
请移步 outofmemory.cn/code-snippet/35876/python-aliyun-open-search-sdk Bs0~P 4^  
Fb<'L5}i  
已公开python版本的sdk
级别: 新人
发帖
8
云币
64
只看该作者 13楼 发表于: 2015-01-31
Re【阿里云产品公测】Opensearch使用体验和评测
好的 强烈支持啊
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 84 + 1 = ?
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)