![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 11.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
pragnę odnaleźć dane z bazy przy pomocy słowa w stringu, LIKE wyszukuje po literce w stringu, mi chodzi aby wyszukiwało mi po konkretnych słowach. Bo jeżeli w bazie mam tekst 'tralalala' to wystarczy ze dam LIKE{$a$} i juz mam, a ja tak nie chce. Chce tak: baza > 'witajcie moi drodzy' i chce zrobić, że jeśli wpisze 'moi' to zwróci mi wynik. Przepraszam, ale nie umiem tego jaśniej wytłumaczyć. Ten post edytował batman 12.08.2009, 07:37:19 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
możesz powiedziec co to jest indeks fraz? Jak to działa?
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Słownik - osobna tabela ze słowami używanymi w serwisie.
W modelu relacyjnym, będzie to wiele-do-wielu -> jedna tabela z tekstami, druga - powiązania, trzecia - wszystkie dostępne słowa w tekstach. Wyszukujesz wg tej trzeciej (każde słowo) i dołączasz relacyjnie interesujące teksty. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 15 Dołączył: 17.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie musisz w ten sposob robic.
To co proponuje moj przedmowca jest owszem wydajnym sposobem, ale tak sie robi na serwisach gigantach . Forum przema cos takiego stosuje i zwykle jest to najwieksza tabela ze wszystkich poniewaz przed zapisem do bazy tekstu czy danych caly tekst jest dzielony do tablicy przy pomocy exlode a pozniej kazde slowo jest zapisywane. Wystarczy Ci wiedza o LIKE '%fraza%' . % okresla z ktorej strony moga sie znajdowac dowolne znaki. LIKE '%fraza' - musi sie zgadzac na koncu LIKE '%fraza%' - moze stac na poczatku, w srodku lub na koncu LIKE 'fraza%' - musi sie rozpoczynac od frazy LIKE 'fraza' - musi byc taki sam jak fraza |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Forum przema Toś "ukochany" przez wszystkich wzór przytoczył... ;/ Cytat Wystarczy Ci wiedza o LIKE '%fraza%' . % okresla z ktorej strony moga sie znajdowac dowolne znaki. Ta, i full-table search za każdym razem, super. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
Czyli sama musiałabym wypisać kluczowe słowa tak jak indeks w książce. Potem zrobić tabelę
teksty a w niej dwie kolumny tekstid i tekst słowa a w niej dwie kolumny slowoid i slowo teksty-slowa a w niej kolumny tekstid i slowoid O to chodzi? I w tej ostatniej kolumnie będą się powtarzać wpisy np: 123; 2 123; 4 123; 9 125; 1 Dobrze to zrozumiałam? pozdrawiam Jola postscriptum czy mógłyś mi polecić jakiś w miarę kompleksowy kurs cachowania i pozycjonowania seo, szczególnie pod kątem google? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 15 Dołączył: 17.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Erix ty sie taki urodziles czy musiales to cwiczyc ? (IMG:style_emoticons/default/blinksmiley.gif)
Stary mam strone z 200 tys odswierzen dziennie i load na serwerze nie przekracza 1.5 na 1 gigowym procku wiec nie wydziwiaj. Baza ma 26 tys wpisow, kazdy z duza iloscia tekstu wiec wybacz, ale te Twoje uwagi nie sa nikomu potrzebne. Chcesz sobie nabic posty ? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
@up
Pisze się odświeżeń. 200 tyś. dziennie? Hahaha kpisz sobie z Nas? W dodatku przy procku 1ghz, takie bajki to wiesz gdzie możesz puścić. Ale nie tutaj. @topic Zastosuj się do rady Erix'a. Ten post edytował fifi209 18.08.2009, 18:58:09 |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Zależy od tego jak to ma działać. Jeśli masz zamiar zrobić z tego coś w stylu "chmury tagów" to wspomniany przez Erixa system z tabelą złączeniową będzie chyba najlepszy. Gorzej gdy frazy mają być wyszukiwane w całości tekstu, tytule i czymś tam jeszcze. Wtedy jedyną chyba sensowną opcją będzie ustawienie na tych polach tabeli indexu full-text. Ma to tę zaletę, że działają wtedy dodatkowe kwantyfikatory wyszukiwania znane z wyszukiwarek jak + czy - co może ładnie posegregować nam wyniki pod względem trafności. Inną zaletą jest częściowe wyszukiwanie. LIKE i wariacje (również tagi o jakich wspomina Erix) słowa "awaria" i "awarie" potraktują jako dwa osobne co sprawi, że w wynikach jednego nie zobaczymy drugiego. Może się zdarzyć, że ze słowem "awarie" znajdzie tylko 3 artykuły, choć "awaria" ma ich 10, ale wyszukiwanie, nie używając full-text, nie uwzględnia ich. Minusem jest niestety szybkość działania. No ale albo szybkość, albo trafność wyników. Używania LIKE czy %LIKE% radziłbym unikać.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
Troszkę się zagubiłam. Radzicie wybrać albo metode z indexami, taka jak napisał erix albo full-text search. I nie używać LIKE. Czy tak?
Czy ta metoda z indexami ma działać tak jak mi się wydaje i jak napisałam kilka postów wyżej? Czy ma mieć takie tabele jak napisałam i wyszukiwanie słowa w tabeli "słowa", sprawdzanie przy pomocy tabeli łącznikowej "teksty-slowa" jaki jest id tekstu i pobranie go z tabeli "teksty". Czy to tak ma działać, chce się upewnić, czy dobrze zrozumiałam. Jeśli korzystam z bazy SQLite i nie mam do dyspozycji kolumny z full-text to nie moge skorzystac z tej metody, prawda? Czy korzystanie z %LIKE%, które wydaje mi się najdokładniejsze poza szybkością ma jakieś wady? Bo LIKE działa w SQLite i mogłabym go użyć. Proszę, polećcie jakiś w miarę kompleksowy kurs cachowania stron i pozycjonowania seo (szczególnie pod kątem google). pozdrawiam Jola |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 04:20 |