[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