3.68M
Category: databasedatabase

Реализация полнотекстового поиска по превью новостей в RSS-лентах и исследование эффективности системы

1.

«РЕАЛИЗАЦИЯ ПОЛНОТЕКСТОВОГО
ПОИСКА ПО ПРЕВЬЮ
НОВОСТЕЙ В RSS-ЛЕНТАХ И
ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ
СИСТЕМЫ»
Выпускная квалификационная работа
Выполнила:
студентка гр. 6231
Голова А.А.
Руководитель:
доцент каф. ПС
Е.В. Сопченко
Самара 2023

2.

ЦЕЛЬ И ПОСТАНОВКА ЗАДАЧИ РАБОТЫ
Цель: разработать автоматизированную систему
полнотекстового поиска в rss-лентах и изучить ее эффективность
Задачи:
1.
Описать и проанализировать предметную область
2.
Разработать структурную схему системы
3.
Разработать диаграмму объектов системы
4.
Разработать информационно-логический проект системы
5.
Разработать алгоритмы обработки данных
6.
Разработать программное обеспечение, провести его тестирование и
отладку
7.
Исследовать эффективность системы и сравнить результаты с поиском
при помощи SQL
2

3.

RSS-контент
3

4.

ОПИСАНИЕ И АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
Полнотекстовый поиск — это комплексный метод поиска, который
сравнивает каждое слово поискового запроса с каждым словом в документе
или базе данных. Поисковые машины и программное обеспечение для
редактирования документов широко используют технику полнотекстового
поиска в функциях поиска в текстовой базе данных, хранящейся в сети или
на локальном диске компьютера. Он позволяет пользователю найти слово
или фразу в любом месте базы данных или документа.
4

5.

СИСТЕМЫ-АНАЛОГИ
Plazoo
RSSoogle
Jamesoo
5

6.

СИСТЕМЫ-АНАЛОГИ
Название
системы/Характеристика
Разрабатываемая
система
RSSoogle
Plazoo
Jamesoo
Сортировка по
релевантности или дате
+
+
+
+
Поиск по языкам
-
+
-
+
Выбор текущих каналов
+
-
+
+
Представляет новости с
резюме и ссылкой
-
-
+
+
6

7.

СТРУКТУРНАЯ СХЕМА СИСТЕМЫ
7

8.

ДИАГРАММА КОМПОНЕНТОВ СИСТЕМЫ
8

9.

ДИАГРАММА РАЗВЕРТЫВАНИЯ СИСТЕМЫ
9

10.

ДИАГРАММА ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ
10

11.

РАЗРАБОТКА ИНФОРМАЦИОННО-ЛОГИЧЕСКОГО ПРОЕКТА
11

12.

ВЫБОР КОМПЛЕКСА ПРОГРАММНЫХ СРЕДСТВ
1.
Язык программирования – Java, TypeScript
2.
Фреймворки – Spring, Angular, Elasticsearch
3.
Операционная система – Windows 10
4.
Среда программирования – Visual Studio 2019, IntelliJ IDEA
Community Edition 2020 1.3
12

13.

Elasticsearch
Elasticsearch — тиражируемая свободная программная поисковая
система, по состоянию на середину 2010-х годов — самая популярная в своей
категории. Написана на Java, распространяется по лицензии SSPL (англ.
Server Side Public License), в основе использует библиотеку Lucene (так же
как и вторая по популярности поисковая система — Solr), официальные
клиенты доступны на PHP, Java, .NET (C#), Python, Groovy и ряде других
Языков.
13

14.

Elasticsearch
Пример документа:
@Document(indexName = "news")
@Data
public class NewsDocument {
@Id
private String id;
@Field(type = FieldType.Text, name = "tittle")
private String tittle;
@Field(type = FieldType.Text, name = "link")
private String link;
@Field(type = FieldType.Text, name = "description")
private String description;
@Field(type = FieldType.Date, name = "pubDate",
format = DateFormat.date)
private Date pubDate;
}
14

15.

Elasticsearch
{
"query": {
"match": {
"tittle": {
"query": "search term",
"operator": "and",
"fuzziness": "auto",
"prefix_length": 3,
"max_expansions": 10
}
}
},
"from": 0,
"size": 5,
"explain": true
}
15

16.

Elasticsearch
{
"query": {
"bool": {
"must": [
{
"range": {
"pubDate": {
"gte": "date_",
"lte": "date1_",
"format": "yyyy-MM-dd"
}
}
}
]
}
}
}
16

17.

ОПИСАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
17

18.

ОПИСАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
18

19.

ОПИСАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
19

20.

ОПИСАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
20

21.

ОПИСАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
21

22.

ОПИСАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
22

23.

ОПИСАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
23

24.

ОПИСАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
24

25.

ИССЛЕДОВАТЕЛЬСКАЯ ЧАСТЬ
Критерий
Elaticsearch
SQL
Тип хранилища данных
Неструктурированн
ые данные (NoSQL)
Структурированные данные (RDBMS)
Язык запросов
Query DSL
SQL
Гибкость
Очень гибкий и
масштабируемый
Ограниченная гибкость, меньше масштабируемости
Распределенная архитектура
Да, распределенная
архитектура по
умолчанию
Нет, только в отдельных решениях
Реактивность
Да, поддержка
реактивного
программирования
Нет
Сложность запросов
Менее сложные
запросы, лучшая
производительност
ь при
масштабировании
Более сложные запросы, хорошая производительность на
небольших объемах данных
Графический интерфейс
Есть, Kibana
Есть, многие RDBMS имеют собственные графические
интерфейсы
25

26.

ИССЛЕДОВАТЕЛЬСКАЯ ЧАСТЬ
26

27.

ПОИСК ПО ЗАГОЛОВКУ
27

28.

ПОИСК ПО ОПИСАНИЮ
28

29.

ПОИСК ПО НЕСКОЛЬКИМ ПОЛЯМ
29

30.

ТЕСТИРОВАНИЕ СИСТЕМЫ
30

31.

ЗАКЛЮЧЕНИЕ
1.
Описана и проанализирована предметная область
2.
Разработана структурная схема системы
3.
Разработан информационно-логический проект системы
4.
Разработан алгоритм поиска данных
5.
Разработано программное обеспечение, проведено его
тестирование и отладка
6.
Исследована эффективность системы (среднее время
выполнения запроса Elasticsearch составляет 6,81 миллисекунд,
среднее время выполнения запроса на SQL - 12,395 миллисекунд
31

32.

Спасибо за внимание
English     Русский Rules