Vespa查询过滤:如何判断特定整数是否存在于int数组字段中
在Vespa中过滤包含特定整数的数组字段
针对你定义的array<int>类型字段location_ids,可以通过两种简洁的方式在YQL中过滤出包含特定整数ID的文档:
方法1:使用IN操作符
直接用整数值和数组字段进行匹配,语法和字符串数组完全一致,只需传入整数即可:
SELECT * FROM doc WHERE userQuery() AND [目标整数] IN location_ids
完整查询示例(以目标整数为100为例):
{ 'yql': 'SELECT * FROM doc WHERE userQuery() AND 100 IN location_ids', 'query': 'some query text' }
方法2:使用contains函数
调用contains函数判断数组是否包含指定整数,同样适用于int数组:
SELECT * FROM doc WHERE userQuery() AND contains(location_ids, [目标整数])
完整查询示例:
{ 'yql': 'SELECT * FROM doc WHERE userQuery() AND contains(location_ids, 100)', 'query': 'some query text' }
注意事项
因为location_ids已经标记为attribute字段,上述两种写法都会利用属性索引执行高效过滤,无需额外配置。两种写法效果完全一致,可根据个人习惯选择。
内容的提问来源于stack exchange,提问作者standalone_2045
相关产品推荐
相关产品推荐

