[TYPO3-german] indexed search, meta description und tt_news

Michael Haugg michael.haugg at memmingen.de
Mon Jul 16 07:11:33 CEST 2007


Hallo Volker!

Herzlichen Dank für die Details. Das werde ich auf jeden Fall mal 
ausprobieren!

Eine schöne Woche noch!

Michael


Volker Golbig schrieb:
> Hallo Michael,
> 
> nochmal zu der Änderung zur Performance-Steigerung:
> 
> in der typo3/sysext/indexed_search/pi/class.tx_indexedsearch.php 
> ungefähr Zeile 820 sollte muss case 1 bis 3 aukommentiert werden und 
> case 10 noch angepast werden, so dass es dann so aussehen sollte:
> 
> // Perform search for word:
>             switch($theType)    {
> 
> /*
>  * can't see any difference in this cases, but Kaspar might know
>                 case '1':
>                     $wSel = "IW.baseword LIKE 
> '%".$GLOBALS['TYPO3_DB']->quoteStr($sWord, 'index_words')."%'";
>                     $res = $this->execPHashListQuery($wSel,' AND 
> is_stopword=0');
>                 break;
>                 case '2':
>                     $wSel = "IW.baseword LIKE 
> '".$GLOBALS['TYPO3_DB']->quoteStr($sWord, 'index_words')."%'";
>                     $res = $this->execPHashListQuery($wSel,' AND 
> is_stopword=0');
>                 break;
>                 case '3':
>                     $wSel = "IW.baseword LIKE 
> '%".$GLOBALS['TYPO3_DB']->quoteStr($sWord, 'index_words')."'";
>                     $res = $this->execPHashListQuery($wSel,' AND 
> is_stopword=0');
>                 break;
> */
>                 case '1':
>                 case '2':
>                 case '3':
>                     $wSel='match(IW.baseword) 
> against("'.$GLOBALS['TYPO3_DB']->quoteStr($sWord, 'index_words').'")';
>                     $res = $this->execPHashListQuery($wSel,' AND 
> is_stopword=0');
>                     break;       
>                 case '10':
>                     $wSel = 'IW.metaphone = 
> '.$this->indexerObj->metaphone($sWord);
>                     $res = $this->execPHashListQuery($wSel,' AND 
> is_stopword=0');
>                 break;
>                 case '20':
>                     $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
>                                 'ISEC.phash',
>                                 'index_section ISEC, index_fulltext IFT',
>                                 'match(IFT.fulltextdata) 
> against(\''.$GLOBALS['TYPO3_DB']->quoteStr($sWord, 
> 'index_fulltext').'\') AND
>                                     ISEC.phash = IFT.phash
>                                     
> '.$this->sectionTableWhere(),                       
>                                 'ISEC.phash'
>                             );
>                     $wSel = '1=1';
>                     if ($this->piVars['type']==20)    
> $this->piVars['order'] = 'mtime';     // If there is a fulltext search 
> for a sentence there is a likeliness that sorting cannot be done by the 
> rankings from the rel-table (because no relations will exist for the 
> sentence in the word-table). So therefore mtime is used instaed. It is 
> not required, but otherwise some hits may be left out.
>                 break;
>                 default:
>                     $wSel = 'IW.wid = '.$hash = 
> $this->indexerObj->md5inthash($sWord);
>                     $res = $this->execPHashListQuery($wSel,' AND 
> is_stopword=0');
>                 break;
>             }
> 
> ....
> 
> 
> Weiterhin muss wie beschreiben z.b mittels phpmyadmin-Interface der 
> Index-Typ des Indizes fulltext in der Tabelle index_fulltext auf 
> FULLTEXT gesetzt werden, sowie in der Inidize baseword in der Tabelle 
> index_words auf FULLTEXT.
> 
> In der t.dev-Liste haben sie lange darüber diskutiert, wie es 
> integrierbar ist. Problem ist wohl, dass der FULLTEXT-Index in anderen 
> DB-Systemen nicht unterstützt wird, und die Sache ja kompatibel bleiben 
> soll. Es gab ein paar gute Lösungsansätze und irgendwann wirds sicher 
> konfigurierbar.
> 
> Noch zu der Frage:
>  > Geht eine täglich Re-Indizierung nicht ziemlich auf en Traffic bzw.
>  > Serverperformance? Ganz davon abgesehen, dass ich von cronjob's auch
>  > nicht viel weiss... Wie sähe denn so ein cronjob aus?
> 
> Sinnvollerweise realisiert man dass so, dass die Re-Indexierung in der 
> Nacht läuft. Weiterhin kann man dann ausschalten, dass die Seiten im 
> Frontend überhaupt indexiert werden - bringt also sogar einen 
> Performance Vorteil.
> 
> Von sinnvollen Alternativen weiß ich nix, aber vielleicht wer anders?
> 
> Cheerio
> Volker
> 
> 
> Michael Haugg schrieb:
>> Hallo Volker,
>>
>> vielen Dank für Deine detaillierte Antwort.
>>
>>> Diff for TYPO3 4.0.5 can be found here:
>>> http://bugs.typo3.org/view.php?id=5089
>>> "
>>>
>>> Habe das bereits erfolgreich umgesetzt, und die 
>>> Performance-Steigerung ist riesig. Leider ist damit aber keine 
>>> Teilwortsuche mehr möglich. Also eine Suche nach "Typo" liefert kein 
>>> Ergebnis, wenn nur "Typo3" im Inhalt vorkommt.
>>
>> Damit könnte ich zur Not leben.
>>
>>> Nochmal eine kurze Beschreibung:
>>> 1. Da ich nicht überall SSH Zugang hab, und nicht sicher war, dass 
>>> das diff auch für meine aktuelle indexed_search Version taugt, hab 
>>> ich ins diff-File geschaut, und in der entsprechenden indexed_search 
>>> Datei lediglich die Änderung vorgenommen. War nur eine if-Abrage, die 
>>> geändert werden musste soweit ich mich erinnere.
>>>
>>> 2. Per phpmyadmin habe ich die einen FULLTEXT Index in den 
>>> index_fulltext und index_words Tabellen gesetzt.
>>>
>>> Das wars auch schon.
>>
>> O je, wenn's sonst nichts ist ;-) ähem... meine Programierkenntnisse 
>> sind doch eher bescheiden. D. h. wenn mir einer sagt, ich soll was 
>> auskommentieren, krieg ich das so grad noch hin, aber was ich mit 
>> irgendwelchen diff-Dateien genau machen soll ist mir nicht ganz klar :-(
>>
>>> zu Punkt 2: "abenteuerliche" Suchergebnisse"
>>> Das Problem kenne ich - tritt bei allen meinen indexed_search 
>>> Installationen auf. Würde mich auch interessieren, ob jemand weiß, 
>>> wie es zustande kommt.
>>
>> Bin insofern beruhigt, dass es dann wohl nicht an mir liegt; wäre 
>> wirklich interessant zu wissen ob andere User das Problem auch haben.
>>
>>> zu Punkt 3: meta description wird mit indiziert
>>> Dazu hast du ja schon die Hack-Lösung
>>> Ich hoffe auch, dass es mal konfigurierbar wird.
>>
>> Ja, und am Besten auch die Ändrungsvorschläge zu Punkt 1
>>
>>> zu Punkt 4: mehrfachindizierung bei tt_news
>>>
>>> Das löse ich bei mir auch so, wie du es beschreibst.
>>
>> Gut - dann stimmt hier wohl schon mal die Richtung.
>>
>>> Bei den zeitgesteuerten Einträgen hilft schätzungsweise nur eine 
>>> re-Indexierung - am besten täglich per cronjob mit der crawler Ext, 
>>> die leider etwas schwierig zu verstehen und konfigurieren ist.
>>
>> Geht eine täglich Re-Indizierung nicht ziemlich auf en Traffic bzw. 
>> Serverperformance? Ganz davon abgesehen, dass ich von cronjob's auch 
>> nicht viel weiss... Wie sähe denn so ein cronjob aus?
>>
>>
>> Was ich nur nicht ganz verstehe, da diese Thematik ja nicht so häufig 
>> im Forum vorkommt: Es gibt doch mittlerweile einige sehr umfangreiche 
>> TYPO3-Seiten mit wahrscheinlich tausenden von tt_news-Einträgen, die 
>> ja i. d. R. eine Stopp-Datum haben. Wie machen's die denn dass sie 
>> saubere Suchergebnisse bekommen?
>> Ist eigentlich die indexed_search hier der Weisheit letzter Schluß 
>> oder gibts Alternativen?
>>
>> Viele Grüße
>>
>> Michael
>>


More information about the TYPO3-german mailing list