Раздел 2: Получение и экспорт выборок из базы
английских ключевых слов (начало)

После того, как вы скачали базу ключевых слов английского языка, установили PostgreSQL, импортировали английские ключевые слова в таблицу и оптимизировали базу данных, нужно научиться делать выборки, что и описано в этом и следующих разделах пошаговой инструкции.

Еще раз напоминаем, что на скриншотах показана работа с минимальной базой, соответственно и время указано для минимальной базы, но работа с расширенной и максимальной базой займет больше времени.

1. Выборка по одному слову

Запросим выборку словосочетаний, в которые входит слово «flights». В ходе тестирования синтаксиса выборок установим лимит количества выводимых результатов в 100 результатов (вообще, в случае выполнения больших выборок из больших баз имеет смысл протестировать синтаксис прежде запуска процесса выборки, поэтому лучше для этих целей ограничить количество результатов).

select
  "keyword"
from
  "eng_data_table"
where
  to_tsvector('english', "keyword") @@ to_tsquery('english', 'flights')
limit
  100;

Выборка по одному слову из таблицы в PostgreSQL

Такая выборка выполнится практически мгновенно. В дальнейшем мы будем приводить примеры с ограничением количества результатов. Для того чтобы убрать это ограничение, нужно убрать из запроса limit 100 и перенести точку с запятой (;) в конец запроса. Рекомендуем для тестирования всегда использовать limit, чтобы выборка выполнялась быстрее, а убирать ограничение только при экспорте в файл.

В результатах выборки присутствуют словоформы. В нашем случае, например, мы использовали множественное число существительного flights, но результатах есть и единственное число flight, поскольку используются правила для английского языка. Часть слов при поиске игнорируется, например, артикли, они являются стоп-словами.

2. Выборка по двум словам

Сделаем выборку по двум словам — «cheap flights». Для этого возьмем предыдущий синтаксис запроса и добавим новое слово со знаком &:

select
  "keyword"
from
  "eng_data_table"
where
  to_tsvector('english', "keyword") @@ to_tsquery('english', 'flights & cheap')
limit
  100;

Выборка по двум словам из таблицы в PostgreSQL

Примечание: Слова в SQL запросе могут быть записаны в любом порядке. В результатах выборки будут словосочетания, в которых входят оба слова также в любом порядке.

3. Выборка по трем словам

Сделаем выборку по трем словам — «cheap flights europe». По аналогии с предыдущим запросом добавляем третье слово со знаком &:

select
  "keyword"
from
  "eng_data_table"
where
  to_tsvector('english', "keyword") @@ to_tsquery('english', 'flights & cheap & europe')
limit
  100;

Выборка по трем словам из таблицы в PostgreSQL

4.Выборка по трем словам с одним исключением

Добавим еще одно действие — сделаем выборку по трем словам «cheap flights europe» и при этом исключим из выборки вхождения со словом «china»:

select
  "keyword"
from
  "eng_data_table"
where
  to_tsvector('english', "keyword") @@ to_tsquery('english', 'flights & cheap & europe')
  and not(to_tsvector('english', "keyword") @@ to_tsquery('english', 'china'))
limit
  100;

Выборка по трем словам и одному исключению из таблицы в PostgreSQL

5.Выборка по трем словам с двумя исключениями

Сделаем выборку по трем словам «cheap flights europe» и исключая два слова «china» ИЛИ «korea»:

select
  "keyword"
from
  "eng_data_table"
where
  to_tsvector('english', "keyword") @@ to_tsquery('english', 'flights & cheap & europe')
  and not(to_tsvector('english', "keyword") @@ to_tsquery('english', 'china | korea'))
limit
  100;

Выборка по трем словам и двум исключениям из таблицы в PostgreSQL

После того, как мы узнали, как делать основные типы SQL запросов для формирования выборок, нам нужно научиться их сохранять.

6.Экспорт результатов выборки

Экспортируем результаты выборки в файл keyword_selection.txt, который в нашем примере находится на диске C: в папке temp:

copy
(

select
  "keyword"
from
  "eng_data_table"
where
  to_tsvector('english', "keyword") @@ to_tsquery('english', 'flights')
limit
  100
)
to 'c:\temp\keyword_selection.txt';

Выборка по трем словам и двум исключениям из таблицы в PostgreSQL

Как мы видим, для того, чтобы сохранить выборку, нужно синтаксис запроса выборки заключить в круглые скобки, убрав точку с запятой, перед открывающей скобкой написать copy, а после закрывающей скобки — путь к файлу с выборкой.

Примечание: Файл выборки по адресу, который вы указываете для экспорта, программа создаст сама (но диск и папка должны быть). Если файл выборки с таким именем уже есть, он будет перезаписан без уточняющего вопроса к пользователю.

Как было сказано выше, мы проверяем запросы с ограничением количества выводимых результатов, но сохранить мы хотим полную выборку, а для этого лимит результатов нужно убрать:

copy
(
select
  "keyword"
from
  "eng_data_table"
where
  to_tsvector('english', "keyword") @@ to_tsquery('english', 'flights')
)
to 'c:\temp\keyword_selection.txt';

Выборка по трем словам и двум исключениям из таблицы в PostgreSQL

В следующем разделе даны примеры выборок, включающие объединение результатов нескольких выборок, сортировку, вывод и экспорт количественной информации.

Если в инструкции есть неточности или непонятные места, напишите, пожалуйста, в нашу службу поддержки.


Раздел 1. Установка программного обеспечения базы данных PosrgreSQL и импорт базы ключевых слов

Раздел 3. Получение и экспорт выборок из базы английских ключевых слов (продолжение)

Раздел 4. Работа с другими базами слов (дополнение)

Скачать базу английских ключевых слов

© 2014 - 2018 Букварикс