Разделение тегов с помощью общего набора данных BigQuery для стекопотока - PullRequest
1 голос
/ 02 ноября 2019

Google делает общедоступным набор данных для содержимого Stackoverflow. Мы можем прочитать об этом здесь . Когда я вхожу в облачную консоль GCP, захожу на страницу BigQuery и отправляю следующий запрос:

select id, tags from `bigquery-public-data.stackoverflow.posts_questions` limit 10

В отображаемой мне таблице результатов поле тегов отображается в виде связанных элементов.

enter image description here

Если я смотрю на JSON, я вижу то же самое:

enter image description here

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

1 Ответ

1 голос
/ 11 ноября 2019

Чтобы найти все вопросы Stackoverflow, содержащие заданное имя тега, вы можете использовать оператор SQL LIKE. Этот оператор очень полезен при поиске определенного шаблона в поле базы данных. Он указывается после оператора WHERE со следующим синтаксисом:

SELECT field1, field2, ...
FROM table
WHERE fieldN LIKE pattern;

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

  • Символ процента "%" ищет любую строку из нуля или более символов.

    Пример : SELECT * WHERE fieldN LIKE "%foo%" вернет все записи, которые содержат строку "foo" встолбец fieldN.

  • Символ подчеркивания "_" ищет любой отдельный символ.

    Пример : SELECT * WHERE fieldN LIKE "A_" вернет все записикоторые начинаются с символа «A».

Чтобы найти все вопросы Stackoverflow, содержащие данный тег TAGNAME, вы можете использовать шаблон "%TAGNAME%". В этом примере запрос вернет все записи, в которых поле тега содержит слово «javascript»:

SELECT 
  *
FROM 
  `bigquery-public-data.stackoverflow.posts_questions` 
WHERE 
  tags LIKE "%javascript%"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...