私はSolrに精通していないので、ユーザーがリストを送信するときに「ほぼ複製」を実装します。JaccardIndexingのようなほぼ重複を検出するためのさまざまなアルゴリズムがあります。
類似係数の違いを確認するために、小さなスクリプトを作成しました。
<?php
$input1 = "Hello there, this is a test 1, you see it's almost the same";
$input2 = "Hello there, this is a test 2, you saw it, it's almost the same";
$input3 = "this is very different from the others, but who knows ?";
echo jackard($input1, $input1) . "<br />"; // results 1
echo jackard($input1, $input2) . "<br />"; // results 0.81481481481481
echo jackard($input1, $input3) . "<br />"; // results 0.25
echo jackard($input2, $input3); // results 0.24
function jackard($a, $b){
$a_arr = explode(" ", $a);
$b_arr = explode(" ", $b);
$intersect_a_b = array_intersect($a_arr,$b_arr);
return((count($intersect_a_b)/(count($a_arr)+count($b_arr)))*2);
}
?>
結果が1の場合、それは同じ文であるか、同じ単語を異なる順序で使用していることを意味していることがわかります。ただし、値が小さいほど、「文」は一意になります。これはかなり単純な実装です。0.4などの制限値を設定できます。そして、この制限を超えた場合は、キューに「リクエスト」を設定します。そして、リストを手動で見てください。これは「効率的」ではありません。しかし、私はあなたにアイデアを与えました、そしてより複雑で自動化されたシステム/アルゴリズムを開発するのはあなた次第です。そして多分あなたもここを見てみるべきです。