Объективировать фильтры запросов, такие как «имя содержит»

1

С помощью Google App Engine, использующего Objectify для запроса хранилища данных, я хотел бы использовать запрос типа

objectifyService.query(Entity.class).filter("name contains", a);

который вернет список со всеми объектами, содержащими "a" caracter в их именах. Однако оператор contains не существует.

Есть ли простой способ сделать это?

Теги:
google-app-engine
objectify

2 ответа

2
Лучший ответ

Вы можете упростить эквивалент службы полнотекстового поиска, разбив поле имени на части, которые вы хотите найти, и сохраните их как индексированное свойство. Вы даже можете использовать анализаторы Lucene для токенизации и защиты ваших полей.

Это очень много работает при работе с хранилищем данных: если у вас нет оператора запроса, который делает то, что вы хотите, предопределите соответствующие данные, чтобы ваш запрос стал тестом на равенство.

В качестве альтернативы используйте службу FTS.

  • 0
    Этот обходной путь был тем, что я искал. Спасибо
0

Ответ - "оператор не существует" - хранилище данных Google не поддерживает этот тип фильтра. Для поиска вам следует использовать поисковую систему: https://cloud.google.com/appengine/docs/java/search/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню