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.