Сейчас использую такую функцию при добавлении новой записи.
Ищу регуляркой в имени автора + названии статьи совпадение, в результате сравниваю текста стати 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']
);
}
}
}