Булевый поиск с помощью Google AppMaker - PullRequest
0 голосов
/ 29 ноября 2018

Я создаю приложение с помощью Google AppMaker и хочу создать логическую опцию поиска (текстовое поле, в котором я могу использовать опции И / ИЛИ для поиска по нескольким комбинациям строк).Это похоже на то, как я могу искать в настоящее время в Gmail или LinkedIn и т. Д. Как я могу создать его?

1 Ответ

0 голосов
/ 29 ноября 2018

Вот один из способов сделать это:

  1. Создайте новый источник данных для модели, в которой вы хотите искать.
  2. Выберите Query Script в качестве типа запроса.
  3. Добавление строкового параметра с именем searchCriteria
  4. Добавление набора параметров с именами parameter0, parameter1, parameter2 и т. Д.
  5. Введите этот код в качестве сервераСкрипт (при условии, что поле, в котором вы хотите искать, называется Name):

var searchCriteria = query.parameters.searchCriteria;

if(searchCriteria === null) return query.run();

var searchArray = searchCriteria.split(/( and | or )/i);
var searchString = '';

for(var i = 0; i < searchArray.length; i++){ 
  if(i % 2 === 0 ){
    searchString += 'Name contains :parameter' + i.toString() + ' ';
    query.parameters['parameter' + i.toString()] = searchArray[i];
  }else{
    searchString += searchArray[i];
  }
}
  
query.where = searchString;

return query.run();
Затем на вашей странице привяжите текстовое поле, с которым вы хотите выполнить поиск, к @datasource.query.parameters.searchCriteria Наконец, измените onValueEdit поля поиска на Reload Datasource

ЭтоТехника ограничена количеством создаваемых пронумерованных параметров и не позволяет использовать скобки.

...