/ / Objectify филтри за заявки като "име съдържа" - java, google-app-engine, objectify

Обектирайте филтрите за заявки като "име съдържа" - java, google-app-engine, objectify

С помощта на Google App Engine, използвайки "Наблюдение", за да заявите заявката за данни, бих искал да използвам заявка като

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

който ще върне списък с всички обекти, съдържащи символа "a" в имената им. Обаче съдържащият оператор не съществува.

Има ли просто начин да направите това?

Отговори:

2 за отговор № 1

Можете да изработите опростен еквивалент наfulltext търсене услуга чрез разбиване на вашето име областта на парчета, които искате да търсите и съхранявайки ги като индексирани собственост. Можете дори да използвате анализаторите на Lucene, за да токенизирате и да прекъсвате полетата си.

Това се случва много, когато работите с datastore: Ако не разполагате с оператор на заявки, който прави това, което искате, индексирайте съответните данни, така че заявката ви да е тест за равенство.

Като алтернатива използвайте услугата FTS.


0 за отговор № 2

Отговор е, че "операторът не съществува" - Google Datastore не поддържа този тип филтър. За да търсите, трябва да използвате търсачката: https://cloud.google.com/appengine/docs/java/search/