Schema
OpenSearch支持
多种数据类型及分词方式,可以满足绝大多数场景下的需求。目前接触到的不满足的有:
| q 转化规则 |
| ‘:‘ 暂不支持 |
| range索引,用filter的区间段来转化 |
| +A ==> A |
| -A ==> 不支持 |
| A AND B ==> A AND B |
| A AND -B ==> A ANDNOT B |
| A OR B ==> A OR B |
| A OR +B ==> A RANK B |
| A AND B OR C ==> A AND B RANK C, e.g:红富士 AND 苹果 OR 山东 |
| A OR B AND C ==> B AND C RANK A, e.g:红富士 OR 苹果 AND 山东 |
| A AND B OR +C ==> A AND B AND C, e.g:红富士 AND 苹果 OR +山东 |
| A OR +B AND C ==> B AND C RANK A, e.g:红富士 OR +苹果 AND 山东 |
| +A OR B AND C ==> A AND B AND C, e.g:+红富士 OR 苹果 AND 山东 |
| A AND B OR -C ==> (A AND B) ANDNOT C, e.g:红富士 AND 苹果 OR -山东 |
| A AND -B OR C ==> A ANDNOT B RANK C, e.g:苹果 AND -红富士 OR 山东 |
| -A AND B OR C ==> B ANDNOT A RANK C, e.g:-红富士 AND 苹果 OR 山东 |
| A OR B AND -C ==> B ANDNOT C RANK A, e.g:红富士 OR 苹果 AND -山东 |
| A OR -B AND C ==> C ANDNOT B RANK A, e.g:红富士 OR -山东 AND 苹果 |
| -A OR B AND C ==> (B AND C) ANDNOT A, e.g:-红富士 OR 山东 AND 苹果 |
| A OR B OR -C == A OR -C OR B == -C OR A OR B ==> (A OR B) ANDNOT C |
| A AND B OR C AND D ==> A AND B AND C AND D |
| 统计转化规则 |
| facet.field => OpenSearch aggregate子句中的group_key参数 |
| facet.limit => OpenSearch aggregate子句中的max_group,默认为1000 |
| facet.mincount => 暂不支持,需要全部结果拿回去自行处理 |
| facet.offset => 暂不支持,需要全部结果拿回去自行翻页 |
| facet.sort => 暂不支持,需要全部结果拿回去自行排序 |
| facet=true&facet.field=price&facet.limit=200 ==> aggregate=group_key:price,agg_fun:count(),max_group:200 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。