Kokotekstihaku ( englanniksi Full text searching , ranskaksi Recherche en texte integral ) on automaattinen asiakirjojen haku, jossa hakua ei tehdä asiakirjojen nimien, vaan niiden sisällön, koko tai merkittävän osan perusteella. [1] Monet verkkosivustot ja sovellukset (kuten tekstinkäsittelyohjelmat) tarjoavat täystekstihakuominaisuudet. Jotkut verkkohakukoneet, kuten AltaVista, käyttävät kokotekstihakumenetelmiä, kun taas toiset indeksoivat vain osan indeksointijärjestelmiensä tarkistamista verkkosivuista.
Täystekstihakuohjelmien ensimmäiset versiot sisälsivät kaikkien asiakirjojen koko sisällön skannauksen tietyn sanan tai lauseen etsimiseksi. Tätä tekniikkaa käytettäessä haku kesti hyvin kauan (riippuen tietokannan koosta), ja Internetissä se olisi mahdotonta. Nykyaikaiset algoritmit muodostavat ns. kokotekstihakemiston ennakkohakua varten - sanakirjan, joka luettelee kaikki sanat ja ilmoittaa, missä ne esiintyvät. Jos tällainen hakemisto on, riittää, että etsit siitä tarvittavat sanat ja sitten saadaan heti luettelo asiakirjoista, joissa ne esiintyvät.
MySQL:n kokotekstihakemistoja kutsutaan "FULLTEXT"-tyypiksi, jota voidaan käyttää sekä "VARCHAR"- että "TEXT"-sarakkeissa. Kun dataa lisätään massalla FULLTEXT-kentillä varustettuun taulukkoon, indeksi luodaan välittömästi, mikä hidastaa työtä, vaikutuksen välttämiseksi on suositeltavaa päivittää kentät lisäämisen jälkeen.
Haku suoritetaan MATCH()- ja AGAINST()-funktioilla:
SELECT * FROM artikkeleista WHERE MATCH ( otsikko , teksti ) VASTAAN ( 'haku' );Tässä tapauksessa hakulauseke on kirjoitettava sana sanalta (eli "haku", "hakukone" ovat virheellisiä vaihtoehtoja yllä olevassa esimerkissä)
Tulos (osumat lihavoitu):
id | otsikko | kehon |
---|---|---|
5 | Säännölliset lausekkeet | Useimmissa säännöllisten lausekkeiden toteutuksissa on tapa etsiä tekstiä... |
yksi | Koko tekstihaku | Haku koko tekstistä ... |