1.支持多表同属一个数据源。但不支持同一个表有多个数据源。
2.不支持修改源数据表的主键,查询会出现重复。
3.查询分词可以单字分词,以达到查询所有组合的目的。
4.主表绝大多数数据更新情况是10s内,辅表会慢一些,时效性目前没有保证。
5.对于RDS表中的datetime及timestamp类型开放搜索系统会自动将其转化为毫秒数。如果想保留源time格式,可以在rds中转化为string后再导入。
6.搜索引擎最多返回5000条指的是start+hit。一页最多返回500条是因为hit的系统限制是[0,500]。
7.有些飘红有些不飘红的,如果是opensearch的搜索问题。最好在opensearch控制台测试,或者sdk调用opensearch的搜索接口。
8.字符串TEXT类型是用来做索引做分词的,LITERAL可以创建为属性字段
9.按量付费是按配额付费不是实际流量。可以在应用列表页面开通“一键报警”,这样有流量超过85%就会报警可以再紧急扩容。
10.老高级版索引重建触发以后立即执行,新高级版需要单击全量索引构建,触发全量数据导入,否则一直处于等待全量索引构建状态。
11.自定义分词的词条文档上查看最多只能支持8000条,不支持扩展
12.如果同时设置了同义词干预和自动纠错干预,那么同义词干预就不会生效的
13.数据更新属于增量同步,不会引起索引重建。
14.不支持MySQL的view的同步。定时任务每天只会执行一次,一旦当天成功执行了一次,无论如何修改配置,都不会再次执行(仅针对于定时任务,手动可以执行)
15.6015错误码,配额不足,扩容即可。批量更新不会消耗LCU的
16.同一个主账号在同一个区域最多创建2个入门型实例(2018.5.7以后)。
17.数据源,只支持rds-mysql、maxcompute,其他的数据库中的数据,只能通过api、sdk上传到opensearch中。
18.v3.x SDK 可以访问高级版 和 标准版应用,目前v2.x 和 v3.x 这2个SDK版本代码差异较大,代码也不兼容
19.粗排表达式,排序分超过20000 是因为 时间戳, 建议:static_bm25()10000+sales_count5+timeliness(create_time)*3
20.下拉提示问题,60字节以内就是原值保留,超过60字节,才会抽取,例如返回:“清扬 洗发水 洗发露”。
21.目前opensearch的文档数据类型,还不支持json格式的数据,目前的办法只能将json类型数据的key全部以字段的形式上传。如果是不定长度的json数组,确实不太好处理,只能看下业务层次生成的数据,是否可以调整下了。
22.如果您希望搜索'国家天文台厉害吗?' 召回国家天文台的内容,不需要配置模糊分词,可以尝试使用查询分析——词权重。
23.类目预测报错('Flow task for table [110053251_category_prediction)可能是数据量和pv太少
24.粗排exact_boost_match 不能用来-RANK 因为RANK只能设置精排,所以不论是sort=-RANK还是sort=+RANK都不会生效。
25.精排中text_relevance用来替代exact_boost_match,但并不是完全替代。text_relevance是文本相关性函数,顾名思义只能支持TEXT,INT是没有任何意义的。
26.设置text_relevance(name) 然后再使用-RANK; sort=-sale_count;-RANK 这样设置就表示,先按sale_count降序,再按text_relevance(name) 降序排列。按文本匹配度再按销量降序,应该是sort=-RANK;-sales_count
27.报错
- Hostname in DNS cache was stale, zapped
- Trying xx.xx.xx.xx...
- TCP_NODELAY set
- Connection timed out after 1000 milliseconds
- Closing connection 0
没有requestid,考虑是网络问题,还没有请求到opensearch。
28.把搜索出来的结果按照相关度高的排序(文本相关度高的排序 使用text_relevance 精排表达式)
选择或者点击率高的结果下次自动增加排序权重(按点击率排序使用sort=-click,需要先按相关度再按点击率排那就是 sort=-RANK;-click)
支持每秒每库1500条doc 可以同时更新
29.scroll_id 的有效时长 默认1min