@Paltinik

Поиск схожих записей в mysql. Как лучше сделать?

Сейчас использую такую функцию при добавлении новой записи.
Ищу регуляркой в имени автора + названии статьи совпадение, в результате сравниваю текста стати php функцией similar_text
function searchDouble($author,$name_article,$text_article){
	global $parser;
$author= str_replace(" "," + ",$author);
$name_article= str_replace(" "," + ",$name_article);
$qq = "SELECT author, name_article, text_article, url_id
FROM `texts` 
WHERE 
(author REGEXP REPLACE(REPLACE('{$author}', ' + ', '|'), ' ', '|')) 
AND 
(name_article REGEXP REPLACE(REPLACE('{$name_article}', ' + ', '|'), ' ', '|'))";
$insert = $parser->mysqli->query($qq);
$results = mysqli_fetch_all($insert,MYSQLI_ASSOC);

foreach ($results as $result){
$sim = similar_text($text_article, $result['text_article'], $perc);
if ($perc > 80) {
return array(
'double' => 1,
'url_id_double' => $result['url_id']
);
}
}

}
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ответы на вопрос 3
Смотрите в сторону полнотекстового поиска

https://www.petefreitag.com/item/477.cfm
https://phpclub.ru/mysql/doc/fulltext-search.html
Ответ написан
Комментировать
inoise
@inoise Куратор тега PHP
Solution Architect, AWS Certified, Serverless
Или же просто взять правильный инструмент для этой задачи
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Попробуйте этот вариант.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы