Daeamon
@Daeamon

Как произвести выборку групп материалов из базы MySQL по схожим признакам?

Здравствуйте, есть три таблицы, news, words, index

Таблица news
CREATE TABLE IF NOT EXISTS `news` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `content` text NOT NULL,
  `link` varchar(255) NOT NULL,
  `category` int(11) NOT NULL,
  `publishedDate` datetime NOT NULL,
  `source` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;


Таблица words
CREATE TABLE IF NOT EXISTS `words` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `word` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;


Таблица index
CREATE TABLE IF NOT EXISTS `index` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `type` int(1) NOT NULL,
  `wordid` int(11) NOT NULL,
  `itemid` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`),
  KEY `id_2` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;


Таблица news, постоянно индексируется на предмет слов, эти данные заносятся в таблицу index, и еще не добавленные слова вносятся в таблицу words.

Есть материалы в которых используются похожие наборы слов и по этому признаку материалы можно объединить в группы. Как мне найти такие группы за минимальное количество запросов к базе?
  • Вопрос задан
  • 348 просмотров
Решения вопроса 1
Daeamon
@Daeamon Автор вопроса
нашел решение своей проблемы. делаю выборку нужной информации из базы, а потом произвел все группировки через пхп, выборка конечно из базы всей нужной информации занимает около десяти секунд.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mgyk
@mgyk
Вы пытаетесь решать задачу совсем не тем инструментом. Возьмите Elastic и ищите https://www.elastic.co/guide/en/elasticsearch/refe...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы