Таблица продуктов

30 мая, 2020
1 минута чтения

Прикладываю наработки по Food assistant’у.

Шаг 1: Создаем таблицу

CREATE UNLOGGED TABLE IF NOT EXISTS foods (
  id SERIAL PRIMARY KEY,
  title TEXT UNIQUE,
  protein NUMERIC (5, 2) default NULL,
  fat NUMERIC (5, 2) default NULL,
  carbohydrate NUMERIC (5, 2) default NULL,
  kcal NUMERIC (5) default NULL
);
-- Хранимая процедура поиска по title мультиязычно
CREATE OR REPLACE FUNCTION to_tsvector_multilang (title TEXT) RETURNS tsvector as $$
SELECT to_tsvector('russian', $1) ||
       to_tsvector('english', $1) ||
       to_tsvector('simple', $1)
$$ LANGUAGE SQL IMMUTABLE;
-- Полнотекстовый поиск по тайтлу
CREATE INDEX idx_gin_foods ON foods USING GIN (to_tsvector_multilang(title));

Шаг 2: Импортируем CSV файл

Screenshot%2B2020 05 30%2Bat%2B16.17.31

Шаг 3: Выполняем запрос

SELECT id, title, protein, fat, carbohydrate, kcal FROM foods
WHERE to_tsvector('russian', title) @@ plainto_tsquery('russian', 'Вермут');
Screenshot%2B2020 05 30%2Bat%2B16.21.06

БД содержит 522 элемента. Получить все необходимые данные можно здесь.

Денис Сергеевич Басковский

Философ, изобретатель и поэт.

Добавить комментарий Отменить ответ

Microsoft Concept Graph
Предыдущая статья

Выявляем концепты из слов

code ql
Следующая статья

Введение в CodeQL

Exit mobile version