[MySQL][PHP] Wyszukiwanie fraz z tekstu |
[MySQL][PHP] Wyszukiwanie fraz z tekstu |
2.02.2014, 12:23:05
Post
#1
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%) |
Witam serdecznie!
Planuję napisać moduł, który na podstawie podanego tekstu szuka w nim fraz z posiadanych w bazie tagów. Przykładowo mam tabelę "tagi" o strukturze: ID | NAZWA Z ilością ok. 8000-10000 rekordów. Użytkownik dodaje na stronę treść (np. do 2000 znaków). Teraz chciałbym tak zrobić, aby system wychwycił wszystkie słowa z tego tekstu, które są w tabeli "tagi". Nie mam pomysłu jak się do tego zabrać. W jaki sposób można coś takiego zrobić? Czy tego typu operacja bardzo obciąża serwer? Pozdrawiam! |
|
|
2.02.2014, 12:46:23
Post
#2
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 20.08.2013 Ostrzeżenie: (0%) |
ja bym zrobił tak:
- najpierw rozdzielił wszystkie wyrazy z tekstu (explode?) do tablicy - potem zagnieżdżona pętla (1 pętla taki, 2 pętla wyrazy z tablicy - i porównał ale pewnie idzie to zrobić lepiej |
|
|
2.02.2014, 12:46:52
Post
#3
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 13 Dołączył: 7.05.2007 Ostrzeżenie: (0%) |
Najprościej: wyciągasz z bazy danych wszystkie tagi i sprawdzasz czy pojawiają się w tekscie:
Gdzie $body to to, co wklepał user. Funkcja zwróci ci id tagów które występują oddzielone przecinkami. Edit: Co do obciązenia serwera to troche daje ale jeżeli funkcja miałaby być wywoływana raz, tylko gdy user dodaje tekst to można by to przecierpieć. Ten post edytował KR2615 2.02.2014, 12:55:03 -------------------- |
|
|
2.02.2014, 13:09:12
Post
#4
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%) |
@ibalyx
myślałem nad czymś takim, ale to by chyba było trochę nieoptymalne rozwiązanie, ale dzięki w każdym razie @KR2615 dzięki. Przetestowałem podaną metodę i prz tekście mającym 4000 znaków i 16000 tagach znalazło mi je w czasie średnio 0,3s. Chociaż przy benchmarku apache wypada kiepsko. Myślałęm też nad tym, czy da się coś takiego zrobić z poziomu bazy danych bez preg_match. Czy da się mimo wszystko szybciej wykonać taką operację? Ten post edytował adam882 2.02.2014, 13:37:43 |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 02:17 |