multi_attr

功能函数项

插件功能函数可以用在filter子句作为过滤和筛选条件,而返回值为数值型的功能函数在sort子句中,用来做排序。

其中功能函数参数出现的文档字段需根据对应函数文档提示,创建为索引或属性.

multi_attr : 返回数组字段指定位置的值

1.详细用法:

multi_attr(field, pos, default_value=0|””)

2.参数:

field: 查询的字段名,必须为ARRAY数组类型,且必须配置为属性字段pos: 整型常数或整型字段,需要配置为属性字段,下标从0开始。default_value(排序得分):可选,字符串常量,表示如果指定pos的值不存在时,返回default_value。

3.返回值:

  • 当指定pos的值存在时,返回对应数组pos下标位置的值;

  • 当指定pos的值不存在时并且没有设置default_value参数时,返回0;

  • 当指定pos的值不存在时并且设置default_value参数时,返回default_value值;

4.适用场景:

场景1:商品有多个价格[市场价、折扣价、销售价],存到prices字段中。查询销售价小于1000的手机

query=deault:'手机'&&filter=multi_attr(price,2)<1000

场景2:商品有多个价格[市场价、折扣价、销售价],存到prices字段中。查询出来的结果排序按折扣价升序排序,如果折扣价不存在或prices字段为空,则赋予默认值600。

query=deault:'手机'&&sort=+multi_attr(price,1,"600")

5.注意事项:

  • 函数参数依赖字段需创建为属性;

  • 当设置default_value时,需要将具体的内容放在双引号中;