parse.com содержит лимит AllObjectsInArray

Я столкнулся с ограничением во время pfquery с использованием containsAllObjectsInArray.

Мои объекты в синтаксическом анализе имеют атрибут массива, который может содержать до 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 тегов.


person Augie    schedule 05.08.2014    source источник


Ответы (2)


Я должен был сначала попробовать это перед публикацией, но я просто разделил свой поиск на подмассивы с максимальным размером 9, а затем добавил их каждый в pfquery в нескольких вызовах containsAllObjectsInArray. Запрос работал нормально. Что-то вроде взлома, но пока работает.

person Augie    schedule 05.08.2014

Я применяю то же решение, я разделил запрос максимум на 9 элементов и работает. Вот пример кода для PHP:

    $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();
person Jose A. Gallardo    schedule 07.11.2014