После того, как вы скачали базу ключевых слов английского языка, установили PostgreSQL, импортировали английские ключевые слова в таблицу и оптимизировали базу данных, нужно научиться делать выборки, что и описано в этом и следующих разделах пошаговой инструкции.
Еще раз напоминаем, что на скриншотах показана работа с минимальной базой, соответственно и время указано для минимальной базы, но работа с расширенной и максимальной базой займет больше времени.
Запросим выборку словосочетаний, в которые входит слово «flights». В ходе тестирования синтаксиса выборок установим лимит количества выводимых результатов в 100 результатов (вообще, в случае выполнения больших выборок из больших баз имеет смысл протестировать синтаксис прежде запуска процесса выборки, поэтому лучше для этих целей ограничить количество результатов).
select
"keyword"
from
"eng_data_table"
where
to_tsvector('english', "keyword") @@ to_tsquery('english', 'flights')
limit
100;
Такая выборка выполнится практически мгновенно. В дальнейшем мы будем приводить примеры с ограничением количества результатов. Для того чтобы убрать это ограничение, нужно убрать из запроса limit 100 и перенести точку с запятой (;) в конец запроса. Рекомендуем для тестирования всегда использовать limit, чтобы выборка выполнялась быстрее, а убирать ограничение только при экспорте в файл.
В результатах выборки присутствуют словоформы. В нашем случае, например, мы использовали множественное число существительного flights, но результатах есть и единственное число flight, поскольку используются правила для английского языка. Часть слов при поиске игнорируется, например, артикли, они являются стоп-словами.
Сделаем выборку по двум словам — «cheap flights». Для этого возьмем предыдущий синтаксис запроса и добавим новое слово со знаком &:
select
"keyword"
from
"eng_data_table"
where
to_tsvector('english', "keyword") @@ to_tsquery('english', 'flights & cheap')
limit
100;
Примечание: Слова в SQL запросе могут быть записаны в любом порядке. В результатах выборки будут словосочетания, в которых входят оба слова также в любом порядке.
Сделаем выборку по трем словам — «cheap flights europe». По аналогии с предыдущим запросом добавляем третье слово со знаком &:
select
"keyword"
from
"eng_data_table"
where
to_tsvector('english', "keyword") @@ to_tsquery('english', 'flights & cheap & europe')
limit
100;
Добавим еще одно действие — сделаем выборку по трем словам «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;
Сделаем выборку по трем словам «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;
После того, как мы узнали, как делать основные типы SQL запросов для формирования выборок, нам нужно научиться их сохранять.
Экспортируем результаты выборки в файл 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';
Как мы видим, для того, чтобы сохранить выборку, нужно синтаксис запроса выборки заключить в круглые скобки, убрав точку с запятой, перед открывающей скобкой написать copy, а после закрывающей скобки — путь к файлу с выборкой.
Примечание: Файл выборки по адресу, который вы указываете для экспорта, программа создаст сама (но диск и папка должны быть). Если файл выборки с таким именем уже есть, он будет перезаписан без уточняющего вопроса к пользователю.
Как было сказано выше, мы проверяем запросы с ограничением количества выводимых результатов, но сохранить мы хотим полную выборку, а для этого лимит результатов нужно убрать:
copy
(
select
"keyword"
from
"eng_data_table"
where
to_tsvector('english', "keyword") @@ to_tsquery('english', 'flights')
)
to 'c:\temp\keyword_selection.txt';
В следующем разделе даны примеры выборок, включающие объединение результатов нескольких выборок, сортировку, вывод и экспорт количественной информации.
Если в инструкции есть неточности или непонятные места, напишите, пожалуйста, в нашу службу поддержки.
Раздел 1. Установка программного обеспечения базы данных PosrgreSQL и импорт базы ключевых слов
Раздел 3. Получение и экспорт выборок из базы английских ключевых слов (продолжение)
© 2014 - 2018 Букварикс