Autor Zpráva
blizzboz
Profil
ako odstrániť HTML tagy z textu, počas procesu vyhľadávania priamo v databáze? potrebujem aby sa vyhľadávalo v texte ktorý neobsahuje HTML značky to znamená že na odstránenie nemôžem použiť skripty.
nightfish
Profil
vytvořit si ještě jeden sloupec, ve kterém bude uložen text bez HTML tagů (a ten plnit při ukládání do db)
blizzboz
Profil
nightfish:
ale ja už tam mám na obsah 2 stĺpce jeden na Texy(Markdown, Textile) a druhý na čisté HTML. To mám len kôli vyhľadávaniu vytvárať ďalší stĺpec typu TEXT neni to trošku mrhanie miestom v databáze? Keď bude v CMSku uložených niekoľko tisíc článkov tak to bude dosť veľký rozdiel.
blizzboz
Profil
btw teraz som našiel túto uloženú procedúru:

DELIMITER $$

DROP FUNCTION IF EXISTS `do1618403db`.`strip_tags` $$
CREATE FUNCTION `do1618403db`.`strip_tags` (x LONGTEXT) RETURNS LONGTEXT
BEGIN
DECLARE sstart INT UNSIGNED;
DECLARE ends INT UNSIGNED;
SET sstart = LOCATE('<', x, 1);
REPEAT
SET ends = LOCATE('>', x, sstart);
SET x = CONCAT(SUBSTRING( x, 1 ,sstart -1) ,SUBSTRING(x, ends +1 )) ; 
SET sstart = LOCATE('<', x, 1);
UNTIL sstart < 1 END REPEAT;
return x;
END $$

DELIMITER ;


a funguje to, najprv sa zavolá uložená procedúra a až jej výsledok sa testuje na hľadaný výraz príkazom like len sa chcem spýtať či to neni mrhanie výkonom.
Joker
Profil
blizzboz:
len sa chcem spýtať či to neni mrhanie výkonom
Spíš to nemusí být spolehlivé ve všech situacích.
Kajman_
Profil *
Zabraný diskový prostor bude asi menší zlo než zvýšené nároky na paměť a procesor. Navíc si na uložené verzi můžete zřídit fulltextový index.
blizzboz
Profil
Joker:
nemusí to je pravda, hlavne keď niekto používa špicaté zátvorky namiesto HTML entít. ja ale text do DB vkladám cez formatter takže sa špicaté zátvorky automaticky konvertujú na entity

Kajman:
vraj uložené procedúry sú celkom rýchle pretože sú v databáze predkompilované ale určite uložiť text bez HTML je najrýchlejšie akurát neviem či kôli vyhľadávaniu v DB má zmysel pridávať tam ďalší stĺpec.
nightfish
Profil
blizzboz:
kôli vyhľadávaniu v DB má zmysel pridávať tam ďalší stĺpec.
už jenom kvůli možnosti využití indexu (fulltext) ano

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0