Как работает поиск по Сиене?
Я ищу документацию о том, как сделать запрос в Сиене, который возвращает все элементы, которые содержат строку. Я пробовал что-то вроде
return all().search("nome", query).fetch();
но он возвращает все элементы, без фильтрации.
1 ответ
Извините за задержку, я не был доступен!
Вы используете GAE, не так ли?
Siena Search for GAE очень ограничена, поскольку GAE предоставляет очень ограниченные возможности поиска для своего хранилища данных. Таким образом, Сиена реализует все, что может, используя некоторые приемы.
В резюме:
Сиена разрешает следующие поиски GAE (в настоящее время):
поиск по 1 полю и не более:
all().search("the_string_to_search", "the_field_to_search").fetch()
поиск по полю, равному одной точной строке:
all().search("myString", "the_field_to_search").fetch()
поиск по полю, равному нескольким точным строкам (например, ИЛИ):
all().search("myString1 myString2", "the_field_to_search").fetch()
поиск по полю, начинающемуся со строки:
all().search("myString*", "the_field_to_search").fetch()
Сиена НЕ РАЗРЕШАЕТ следующие поиски GAE:
поиск по нескольким полям:
all().search("myString", "field1", "field2").fetch()
Генерирует исключениепоиск по полю, заканчивающемуся строкой:
all().search("*myString", "the_field_to_search").fetch()
Генерирует исключение