Сначала уточнение: YQL - это просто синтаксис запроса.Язык запросов JSON (https://docs.vespa.ai/documentation/reference/select-reference.html) - это другой. Еще один способ (наиболее распространенный) - это создание запросов непосредственно из данных, полученных от клиентов в компоненте Searcher (Java).
Ниже я покажучтобы построить три примера в каждом из этих вариантов. У Vespa нет типа даты, поэтому здесь я предположил, что вместо этого у вас есть целочисленное поле Birthyear.
Выбрать всех людей, чьи хобби содержит 'sport '.
// YQL (в качестве параметров GET URL)
? query = select * from Персоны, в которых хобби содержит "sports"; & type = yql
// JSON(POST body)
{"Содержит": ["Хобби", "Спорт"]}
// Java-код
query.getModel (). GetQueryTree (). SetRoot (new WordItem ("sports", "hobbies"));
Выбрать всех лиц, чей код города для телефонов равен 'NY'.
// YQL (в качестве параметров GET URL)
? Query = select * from Персоны, в которыхphones.areaCode содержит 'NY'; & type = yql
// JSON (тело сообщения POST)
{"select": {"where": {"содержит": ["phones.areaCode", "NY"]}}}}
// Java-код
query.getModel (). getQueryTree (). setRoot (new WordItem ("NY", "phones.areaCode"));
Выбрать всех лиц, чья дата рождения матери превышает 1960.
// YQL (как GETПараметры URL)
? Query = select * из Persons, где mother.Birthyear> 1960; & type = yql
// JSON (POST body)
{"select": {"where": {"range": ["mother.Birthyear", {">": 1960}]}}}
// Java-код
query.getModel (). getQueryTree (). setRoot (new IntItem ("> 1960", "mother.Birthyear"));
Примечание:
- Ссылка на структурированные поля связана с точками в структурах.
- Контейнеры становятся (имеетэти маркеры) или (равно) в зависимости от настройки соответствия поля.