![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Znacie jakieś w miare dobra algorytmy na znajdywanie podobienstwa dwóch nazwa składających się z wielu wyrazów?
Podobienstwo na zasadzie: kapitaliki, jedno slowo podobne edna litera inna, znaki interpunkcyjne inne Najlepiej jakby dało się do zrobić na poziomie zapytania do bazy. Jak nie to obróbka w php. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 19 Dołączył: 4.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki @nospor za paczkę, robi dobrą robotę (IMG:style_emoticons/default/smile.gif)
Ja akurat właśnie muszę zrobić odnajdywanie podobnych słów, ale na poziomie bazy i korzystając z okazji, że temat w offtopie, mam do was pytanie. Najwyżej zgarnę srogie baty (IMG:style_emoticons/default/biggrin.gif) Otóż tak. Mam dwie identyczne bazy w MySQL i PostgreSQL na których badam wydajność żeby ostatecznie po tygodniach testów pozostać na MySQL lub przejść na PostgreSQL. Do MySQL dodałem funkcję wykorzystującą algorytm levenshteina znalezioną tu: http://stackoverflow.com/questions/1390988...nction-in-mysql która działa, ale przy tabeli 40 tys. rekordów wykonanie najprostszego zapytania wykorzystującego tę funkcję trwa ok 15 s. Docelowo ma on działać na trochę większej tabeli, ok. 250 tys. rekordów więc rozwiązanie raczej marne. Na ogromny plus wychodzi w tej sytuacji PostgreSQL, w którym wykonanie zapytania wykorzystującego funkcję levenshteina z modułu fuzzystrmatch trwa zaledwie 0,5 s. na takiej samej liczbie rekordów (40 tys.). No i to pytanie docelowe - czy to wydaje się być realne i normalne, że różnica czasu w wykonaniu bardzo podobnych do siebie zapytań na dwóch tych bazach jest taka duża? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.10.2025 - 08:19 |