Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL]Wyszukiwanie danych z bazy
szarobury
post
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
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. %moi%

Ale to i tak mało wydajne... Lepiej indeks fraz zrobić i wg niego wyszukiwać.
Go to the top of the page
+Quote Post
jolam
post
Post #3





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (10%)
X----


możesz powiedziec co to jest indeks fraz? Jak to działa?
Go to the top of the page
+Quote Post
erix
post
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.
Go to the top of the page
+Quote Post
CyberDuck_
post
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
Go to the top of the page
+Quote Post
erix
post
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.
Go to the top of the page
+Quote Post
jolam
post
Post #7





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (10%)
X----


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?
Go to the top of the page
+Quote Post
CyberDuck_
post
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 ?
Go to the top of the page
+Quote Post
Fifi209
post
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
Go to the top of the page
+Quote Post
thek
post
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ć.
Go to the top of the page
+Quote Post
jolam
post
Post #11





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 04:20