База данных: MongoDB Atlas, бесплатная версия, так что лимит --- 512 мб. NoSQL. Основной проект на ASP.NET Core (C#, MVC). Из базы данных берется информация, анализируется и отправляется пользователю.
Доступ:
- Read only:
mongodb+srv:https://reader:[email protected]/test?retryWrites=true&w=majority
- Read & Write:
mongodb+srv:https://writer:[email protected]/test?retryWrites=true&w=majority
Название БД: News
Название каждой коллекции соответствует названию (домену) какого-то новостного сайта (например, pravda.com.ua, tsn.ua).
BSON:
{
"_id": ObjectId,
"Title": "string",
"Text": "string",
"Tags": [
"string"
],
"SourceUrl": "string",
"TimeSourcePublished": BsonDate,
"EnglishText": "string",
"KeyWords": [
"string"
],
"Duplicates": [
"string"
]
}
Возможно, будет расширяться/изменяться ещё.
KeyWords
, Duplicates
--- заполняются только после анализа (если вообще заполняются :) ). В KeyWords
хранятся ключи текста, в Duplicates
--- дублирующие новости; всё остальное понятно.
Основной код каждые 60 минут вызывает скрипт. Скрипт делает парсинг сайтов при запуске, и заносит информацию в БД, каждый сайт в соответствующую коллекцию, по формату выше. Очевидно, если новость уже есть в коллекции, её не добавлять (сравнивать по url например, как минимум).
Надо сделать что-то красивенькое из имеющихся данных :)
В NewsHelper.cs
есть заглушка для анализа.
Планы:
- выделять из текста новости ключевые слова
- сравнивая ключевые слова, находить дубликаты в других коллекциях
- ...