Son zamanlarda (iyi) ölçeklendirme olanakları gerekebilir bir proje üzerinde çalışmaya başladı, ben şu soru ile geldim:
Dikkate levensthein algoritması (farklı varyasyonlar üzerinde / ile çalışıyorum) almayan, ben her sözlük kelimesi yineleme ve sözlük kelime ve benim girdi dizesindeki kelimelerin her biri arasındaki levensthein mesafeyi hesaplayabilirsiniz. Çizgisinde bir şey:
<?php
$input_words = array("this", "is", "a", "test");
foreach ($dictionary_words as $dictionary_word) {
foreach ($input_words as $input_word) {
$ld = levenshtein($input_word, $accepted_word);
if ($ld < $distances[$input_word] || $distances[$word] == NULL) {
$distances[$input_word] = $ld;
if ($ld == 0)
continue;
}
}
}
?>
My question is on best practise: Execution time is ~1-2 seconds. I'm thinking of running a "dictionary server" which, upon startup, loads the dictionary words into memory and then iterates as part of the spell check (as described above) when a request is recieved. Will this decrease exec time or is the slow part the iteration (for loops)? If so, is there anything I can do to optimize properly?
Google'ın "Bunu mu demek istediniz:?" Aynı giriş dizesi kontrol etmek için birkaç saniye almaz ;)
Peşin ve mutlu Yeni Yıl teşekkürler.