Почему dev-сервер не создает индекс для этого запроса?

Вот как выглядит мой класс сущности:

@Entity
@Unindexed
public class User {
    ...
    @Indexed
    private int betsCount = 0;

Вот как я строю/запускаю запрос:

objectify.query(User.class).filter("betsCount >", MIN_BETS).iterator()

Индекс не добавляется в datastore-indexes-auto.xml, поэтому я не вижу его в dev-консоли, и, естественно, запросы (при запуске на живых серверах) ничего не возвращают.

Я знаю, что могу добавить индекс (запросить его создание) вручную, но до сих пор автоматическое создание индексов, казалось, отлично работало для меня. Поэтому мне интересно, что мне здесь не хватает.

ОБНОВЛЕНИЕ: я не осознавал, что мне нужно повторно вставлять данные при добавлении аннотации @Indexed к существующему свойству.


person Jaroslav Záruba    schedule 23.02.2012    source источник
comment
Это единый индекс свойств. Вам не нужно указывать для него пользовательский индекс, и он не будет отображаться на странице индексов.   -  person Robert Kluin    schedule 23.02.2012


Ответы (1)


Для запроса, который вы пытаетесь выполнить, требуется только один индекс свойства. Вам не нужно указывать для него пользовательский индекс, и он не будет отображаться на странице индексов.

Я подозреваю, что ваша проблема связана с использованием вами @Unindexed, что-то еще с определением модели или, возможно, с данными и критериями, которые вы используете. Ознакомьтесь с документацией Objectify на странице индексированных/неиндексированных. подробное описание индексов. Я также хотел бы убедиться, что данные действительно соответствуют указанным вами критериям.

person Robert Kluin    schedule 23.02.2012
comment
Я думаю, что мне просто может понадобиться повторно вставить объекты, потому что я добавил аннотацию Indexed к этому свойству только сейчас. (Сущности были вставлены без индексирования этого свойства.) - person Jaroslav Záruba; 23.02.2012
comment
Да, тогда это проблема. - person Robert Kluin; 23.02.2012