阅读715 返回首页    go 阿里云


过滤filter子句__搜索子句介绍_API参考手册_开放搜索-阿里云

子句说明

过滤功能支持用户根据查询条件,筛选出用户感兴趣的文档。会在通过query子句查找到的文档进行进一步的过滤,以返回最终所需结果。

语法说明

过滤条件格式为:filed=value

  • 过滤条件支持>、<、=、<=、>=、!=等常见条件运算符;以及+、-、*、/、&、^、| 等算术运算符;
  • 过滤条件可以配置多个,通过AND、OR及()的逻辑运算关系(必须大写!)进行连接。

注意事项

  1. filter为非必选子句;
  2. 在filter中出现的字段必须在定义应用结构的时候配置为属性字段;
  3. float、double类型因为精度问题无法做精确相等的判断,如有这种场景请,如有这种场景请改用<及>来实现。
  4. literal类型的字段值必须要加双引号,支持所有的关系运算,不支持算术运算。
  5. 排序特征function函数也可以在filter子句中使用;
  6. literal类型字段的过滤仅支持=、!=运算,含义为包含、不包含,不支持>、<等关系运算

示例

应用中有一个int32字段category,值分别为1(news),2(bbs)等,需要查询分类category为2(bbs)且包含“浙大”的文档:

  1. query=default:'浙大' AND category_search:'2' //category字段创建了一个索引字段category_search
  2. //或者
  3. query=default:'浙大'&&filter=category=2

小说应用中有个string_array字段tags,表示小说风格标签:“宫廷”、“悬疑恐怖”、“言情”,需要查询包含“甄嬛传”且标签包含“宫廷”的文档:

  1. query=default:'甄嬛传'&&filter=tags="宫廷"

电商应用中有个int32的字段hit(点击)和sale(销量),及int64的字段create_time,需要查询包含“连衣裙”且销量与点击的和乘上rate(偏移率)超过10000,创建时间早于1402345600的文档:

  1. query=default:'连衣裙'&&filter=(hit+sale)*rate>10000 AND create_time<1402345600

判断用户是否在商家的配送范围。如商家配送范围的字段为coordinates, 用户位置坐标为 (120.307234, 39.294245),则过滤在配送范围内的商家查询可写为:

  1. query=default:'美食'&&filter=in_polygon(coordinates, 120.307234, 39.294245)>0

最后更新:2016-11-23 16:04:03

  上一篇:go 查询query子句__搜索子句介绍_API参考手册_开放搜索-阿里云
  下一篇:go 排序sort子句__搜索子句介绍_API参考手册_开放搜索-阿里云