Sobes.tech
Middle

Mi az a teljes szöveg index?

sobes.tech MI

Válasz az MI-től

A teljes szöveg index egy speciális típusú index az adatbázisban, amely lehetővé teszi hatékony szövegkeresést olyan oszlopokban, amelyek nagy mennyiségű szöveges adatot tartalmaznak (például cikkek, leírások).

A normál indexektől (például B-fa indexek) az különbözik, hogy a teljes szöveg index nem a teljes oszlopértékekkel dolgozik, hanem külön szavakkal vagy kifejezésekkel. Elemzi a szöveget, eltávolítja a stop szavakat (elöljárók, névelők), és létrehoz egy invertált indexet, ahol minden szónak egy dokumentumlistája van, ahol előfordul.

Előnyök:

  • Magas teljesítmény nagy szövegmezőkben történő szavak és kifejezések keresésekor.
  • Különböző rangsorolási algoritmusok támogatása (pl. relevancia szerint).
  • Szóformák szerinti keresés lehetősége (stemming).

Hátrányok:

  • Több helyet igényel a lemezen, mint a normál indexek.
  • Az indexelés hosszabb időt vesz igénybe.
  • Korlátozások a támogatott kódolásokra és nyelvekre vonatkozóan, az adatbázis-kezelő rendszer függvényében.

Példa a teljes szöveg index létrehozására MySQL-ben:

-- Tábla létrehozása szöveges mezővel
CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    content TEXT
);

-- Teljes szöveg index hozzáadása a content mezőhöz
CREATE FULLTEXT INDEX idx_content ON articles (content);

Példa a teljes szöveg keresésre:

-- Cikkek keresése, amelyek tartalmazzák a "PHP" szót
SELECT *
FROM articles
WHERE MATCH (content) AGAINST ('PHP');

-- Cikkek keresése, amelyek tartalmazzák a "fulltext index" kifejezést
SELECT *
FROM articles
WHERE MATCH (content) AGAINST ('"fulltext index"' IN BOOLEAN MODE);

A teljes szöveg indexek különböző adatbázis-kezelő rendszerekben használhatók, például MySQL (a MyISAM és InnoDB tárolómódok 5.6-tól támogatottak), PostgreSQL, SQL Server és mások. Komplexebb szcenáriókban specializált keresőmotorokat, például Elasticsearch vagy Apache Solr-t lehet alkalmazni, amelyek integrálhatók az adatbázissal.