Мне нужно получить уникальные строки и засунуть в базу. Сейчас делаю на PHP, но это сверх долго...
Может я не так делаю логически?
Вот пример шаблона строки
{Как
{сделать
|сгенерировать
} эту строку
{разной
|непохожей
} из нескольких слов
}
Это часто используют для анкоров. Но для большого абзаца это страшно виснет.
Может есть что поумнее? Или на питоне например?
Я делаю так: Но он постоянно возвращает много повторов...
$text = "{Как {сделать|сгенерировать} эту строку {разной|непохожей} из нескольких слов}";
function textGenerator( $text ) {
if ( preg_match( "/^(.*)\{([^\{\}]+)\}(.*)$/isU", $text, $matches ) ) {
$p = explode( '|', $matches[2] );
foreach ( $p as $comb ) textGenerator( $matches[1].$comb.$matches[3] );
} else {
echo $word.PHP_EOL;
Condition::firstOrCreate(['name' => $word]); // Тут загоняю в базу
}
}
textGenerator($text);
Небольшой абзац он мне забил в базу 17 миллионов строк, где большенство повторов.
Может есть готовые пакеты, классы для таких целей?
А то что сейчас он через какое то время начинает возвращать одно и тоже...