首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >parse.com containsAllObjectsInArray极限

parse.com containsAllObjectsInArray极限
EN

Stack Overflow用户
提问于 2014-08-05 18:48:16
回答 2查看 374关注 0票数 2

在使用containsAllObjectsInArray的am查询过程中,我遇到了一个限制。

解析中的对象具有最多包含12个字符串的数组属性,只要我的搜索查询数组是9个或更少的字符串,查询就能工作得很好。

当我使用PFQuery在这个表上执行一个containsAllObjectsInArray,并且我的搜索数组包含9个以上的对象时,我会得到以下错误。

错误:$all查询中太多的术语(代码: 154,版本: 1.2.19)

因此很明显,containsAllObjectsInArray只能在数组中搜索9个或更少的匹配项。

这个要修好吗?

我遵循了Parse的博客文章中关于使用标记( http://blog.parse.com/2013/03/19/implementing-scalable-search-on-a-nosql-backend/ )进行可伸缩搜索的文章。非常惊讶,这是推荐的方法,它炸弹后对象有9个以上的标签。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-05 18:58:43

在发布之前,我应该先尝试这样做,但我只需将搜索划分为最大大小为9的子数组,然后在多个containsAllObjectsInArray调用中将每个子数组添加到pfquery中。查询正常。有点像黑客,但现在起作用了。

票数 1
EN

Stack Overflow用户

发布于 2014-11-07 14:02:47

我应用了相同的解决方案,我用最多9个条目拆分了查询,并进行了工作。下面是PHP的示例代码:

代码语言:javascript
复制
    $totalTags = count($tags);
    $theQuery = new ParseQuery("articles");
    if($totalTags  > 9){
        $c=0;
        for($i=0;$i<($totalTags/9);$i++){
            $limitArray = Array();
            $h = 0;
            $ini = $c;
            $fin = min(9+$c,$totalTags);
            for($j = $ini; $j < $fin; $j++){
                $limitArray[$h] = $tags[$j];
                $c++;
                $h++;
            }
            $theQuery->containsAll("tags", $limitArray);
        }
    }else{
        $theQuery->containsAll("tags", $tags);  
    }
    $articles = $theQuery->find();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25146184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档