Søgefunktion i MySQL uden brug af LIKE

Tags:    php

Hej udviklere.

Jeg har altid brugt LIKE til at søge i mine databaser indtil jeg opdagede at på mange andre "proffesionelle" websider kan man sortere efter relevans og den vælger også rækker fra databasen som er stavet et ord forkert i forhold til din søge stræng. Jeg har prøvet at søge på nettet og fundet ud af at man kan skrive sådan:

SELECT * FROM tbl_name WHERE MATCH (kolonne) AGAINST ('søgeord')

Dette hedder vist fuldtekst søgning. Er dette den rigtige vej at gå og er der nogen der kan skrive sådan en query for har selv ikke fået det til at virke...


Med Venlig Hilsen
Mathias



8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Det gode ved tredjepartssystemer snarere end databaseserveren direkte, som The-Freak foreslår, er at man for det første kan bruge et system der har det som hovedformål, og for det andet ikke skal spekulere over hvordan fulltext-søgninger er implementeret, hvis overhovedet, hvis man på et tidspunkt skifter fra MySQL til en anden databaseserver.

På min arbejdsplads bruger vi Solaar til fulltext-søgninger.



En del sites som tilbyder sådan fuldtekst søgning benytter ikke MySQL's egen fuldtekst søgning, men derimod et tredjeparts system, som f.eks. Sphinx.



Okay. Tak skal i have :D

Kan sådanne tredjepartssystemer bruges sammen med MySQL og hvad er det egentlig. Et kodesprog, script etc. ?

Skal jeg lære et nyt sprog for at lære disse tredjepartssystemer at bruge?

Skal jeg skrive hele quary's med f.eks. Sphinx eller kan jeg inkludere det i en php's mysql_query()?


Hvad er der galt med MySQL's fuldtekst søgning?



Indlæg senest redigeret d. 17.07.2009 22:47 af Bruger #15155
Ydeevnen i MySQL's fuldtekst søgning skalere ikke særlig godt, er ikke så fleksibel og du bliver bundet op på fuldtekstsøgningen i netop MySQL, så det bliver svært at skifte til en anden database, f.eks. PostgreSQL.

Hvordan du bruger tredjepartssystemerne er forskelligt, men f.eks. Sphinx fungere(overordnet) ved at du har en seperat server(searchd) som står og skaber et indeks over alt data i din database. Når man så vil søge i databasen, kalder man til søge-serveren vha. et API, og serveren returnere herefter resultaterne.



Okay :D

Nu har jeg jo en hjemmeside hos one.com. Vil det sige at jeg ikke kan bruge denne fuldtekstsøgning på denne server da du nævner at man skal have 2 servere?



Indlæg senest redigeret d. 18.07.2009 19:03 af Bruger #15155
Sphinx benytter en ekstra server applikation, så medmindre du har gode evner inden for kunsten at overtale hostingselvskaber, tror jeg at det må blive et ja, du vil ikke kunne bruge Sphinx på One.com.



Efter som jeg har forstået det er det en cmd der kører på en server. Og det har jeg rigtigt nok ikke muglighed for hos one.com

Er der nogen der så kan skrive denne query til fulltext søgning på MySQL så jeg kan se hvordan det virker :D

Har ikke selv fået det til at virke :S



t