cisrudlow
8.12.2005, 17:39:54
Moj provider nie udostepnia mi f-cji aspella (php nie jest z nim skompilowane). Chcialbym sobie stworzyc sam system sprawdzania pisowni. Powiedzmy, ze mam wszystkie slowa zapisane w pliku txt (jest ich ok 3 milionow). Czy warto to wszystko przeniesc do bazy i jej uzywac do wyszukiwania poprawnych wyrazen (co jest prostrze)? Czy podzielic moj plik txt na pliki, np. plik a.txt zawiera wszystkie slowa na a itd. i natrafiajac na slowo na "a" otwieramy ten plik, szukamy go w nim, jezeli nic nie bedzie, to zwracamy blad, a na koncu zamykamy plik. Jednak tych slow na "a" moze byc, takze duzo i moze to zabic moj skrypt (biorac pod uwage, ze moze dlugo wyszukiwac). Czy moze macie inne rozwiazanie? Czy znacie, jakies gotowe rozwiazania?
ennics
8.12.2005, 18:29:31
lepiej będzie jak wrzucisz plik do bazy danych, wyszukiwanie będzie szybsze.
możesz poindeksować go np po pierwszej literze danego słowa
np masz kol.: id|prefix|slowo
prefix tworzysz poprzez:
UPDATE tabela SET prefix = SUBSTRING(slowo, 1, 1)
Fixer
17.02.2008, 14:41:52
dajesz wszystko do mysqla i tworzysz unikatowy klucz jednoznaczny (bez powtórzeń+indeksowanie)
a o plikach tekstowych ZAPOMNIJ! przeszukanie całej bazy zajmie ci w okolicach 10 sekund (jeden wyraz) baza 4mln rekordów
ALTER TABLE `tabela` ADD UNIQUE (
`kolumna`
)
i sprawdzenie 124 wyrazów trwa ok. 1 sekundy

zresztą sam sprawdź
http://www.ortografik.rox.pl/