Zum Inhalt springen

indexed_search und crawler

Erstellt am 30. November 2007 · 38 Antworten · letzte Antwort am 10. Februar 2010 · Seite 1 von 2

Tags: Suche, Frage

log2e ·

Diese ausführliche Diskussion der crawler-Extension war sehr hilfreich für mich. Vielen Dank.

Eine Anmerkung und eine Frage:

1. Um den Crawler im CLI-Mode zu starten, musste ich die Zugriffsrechte für die Datei /typo3temp/tx_crawler.proc manuell auf 777 ändern. Das habe ich erst gemerkt, als ich den Cronjob eingerichtet hatte und eine entsprechende Fehlermeldung bekam.

2. Muss ich für den BE-Nutzer "_cli_lowlevel" irgendwelche Berechtigungen konfigurieren?

Stefan

jonas8 ·

Hallo Stefan

Nein, der BE-Nutzer "_cli_lowlevel" braucht keine Berechtigungen
er muss einfach nur existieren.

Ja, die Datei /typo3temp/tx_crawler.proc muss vom Web-Server
beschreibbar sein.

Die Information aus tx_crawler.proc wird beim Modul angezeigt:

Web - Info - Site Crawler - CLI status

Status: end
Message: Rows: 0
Counter: 84932
Last seen: 29.01.08 13:16 (1 Min)
Last proc. time: 0 seconds

Viele Grüsse
Jonas

sventb ·

Hallo, bei mir funktioniert die Indexierung mit dem Crawler soweit, auch bei tt_news-Datensätzen, ABER: wenn man eine News löscht, bleibt der Text aus der Single-Ansicht der News im Index erhalten.

Habe ich falsch konfiguriert (ich hab für die Indexierung von News nur eine “Indexierungseinstellung” in die Seite mit der News-Single-Ansicht gelegt)?
Oder soll ich den Suchindex jeden Tag (wie die Tabelle tx_crawler_queue) leeren? Wenn der Cronjob alle 2 Minuten drüber läuft, sollte die Seite ja nach 1 Stunde spätestens wieder komplett indexiert sein!?

jonas8 ·

hmm, keine Ahnung,
bei mir habe ich das mit den News-Indexierung noch nicht aktiviert.

Habe ich falsch konfiguriert (ich hab für die Indexierung von News nur eine “Indexierungseinstellung” in die Seite mit der News-Single-Ansicht gelegt)?

wie hast du denn das genau gemacht?
dann versuche ich es auch und kann dir meine Erfahrungen sagen.

Gruss Jonas

sventb ·

Hi Jonas,

nachdem du das News-Plugin erstellt hast, mußt du auf die Seite, auf der die Detail-Ansicht der News angezeigt wird, den Datensatz "Indexierungseinstellungen" anlegen, Typ "Datenbank Datensätze", "News" als "Zu indexierende Tabelle" auswählen, als Quell-Seite die Seite mit den News-Datensätzen auswählen, in Felder kommt "title,subtitle,bodytext" und in GET-Parameter-String "&tx_ttnews[tt_news]=###UID###".

Jetzt kannst du die Indexierung drüberlaufen lassen und die News sollten indexiert werden. Aber wenn du eine News löscht und die Indexierung nochmal drüber laufen läßt, ist die Detailansicht der News noch immer im Index.

Danke für deine Hilfe.

jonas8 ·

Hallo sventb

Also ich hatte nun Zeit die Sache zu testen.
Bei mir funktioniert es tadellos.

Ich habe auf der News-Detailansicht den Datensatz 'Indexierungseinstellungen'
hinzugefügt und mit deinen Werten gefüllt.

Typ:
Datensätze

Zu indexierende Tabelle:
News

Felder (erstes ist Titel):
title,subtitle,bodytext

GET-Parameter-String (mit ###UID###-Ersetzung):
&tx_ttnews[tt_news]=###UID###

Dann die Indexierung laufen lassen.

Normalerweise macht er das ja nur 'einmal täglich' oder 'stündlich' oder 'wöchentlich' aber wenn man bei
Nächste Indexierung ist geplant (wenn leer, dann sofort):
ein leeres Feld lässt, macht er es sofort.

Dann eine News löschen und nochmals eine Indexierung starten
und der Newsbeitrag ist nicht mehr im Index.

Wie sieht es bei dir aus?
Konntest du das Problem eingrenzen / lösen?

Gruss Jonas

hoschi78 ·

Hallo,

kurz was zu folgendem Punkt bzgl. Debian.

crontab -e
mit i - in den Insert-Modus
* * * * * /pfad/zum/www/typo3/cli_dispatch.phpsh crawler
mit 'ESC' und dann :wq - Speichen und verlassen

Im aktuellen Debian ist vi nicht der Standard-Editor für die crontab sondern nano.
Wenn man nun also "crontab -e" aufruft, dann ist man direkt im "insert mode". Gespeichert und beendet wird mit "STRG + x" --> Abfrage speichern Ja/Nein. Es wird eine Datei /tmp/xxxxx angezeigt, in die man speichert, das ist ok (Enter). Crontab wird neu initialisiert. Fertig

sventb ·

Ich bin noch nicht weiter gekommen.
Hast du deine News-Detailansicht auf einer separaten Seite oder auf der Seite, wo auch die News-LIST-Darstellung ist?

Ich habe für die Single-Ansicht eine andere Seite, und auf diese wird aus der Suche heraus verlinkt, obwohl die News gelöscht ist.

jonas8 ·

Ja, klar,
wenn du einen Newsbeitrag löschst ist der Content so lange noch
im Cache bis die News neu indexiert werden.

Das hat nur indirekt etwas mit dem Cronjob zu tun.
Viel mehr mit den Einstellungen bei den 'Indexierungseinstellungen'.
Was hast du dort für einen Wert?

'Wie häufig soll eine Reindexierung vorgenommen werden?'

  • stündlich
    täglich (24 Stunden)
    wöchentlich

(Ich habe auch zwei Seiten eine für die LIST und eine für SINGLE)

Alles klar? Versuchs nochmal und gib Bescheid.

Gruss Jonas

sventb ·

Ich habe in den Indexierungseinstellungen "täglich" stehen. Aber das ist nicht das Problem, denn ich gehe wie folgt vor:

1) Test-Newsdatensatz anlegen
2) Indexierung manuell starten
3) Suche nach Keyword aus News -> wird gefunden in LIST und SINGLE, super 🙂
4) Test-Newsdatensatz löschen
5) In Indexierungseinstellungen das Häkchen bei "nächste Indexierung ist geplant (wenn leer, dann sofort)" entfernen -> News werden neu indexiert
6) Indexierung wieder manuell starten
7) Suche nach Keywords aus News -> wird nicht gefunden in LIST, super; aber wird gefunden in SINGLE-Ansicht, schlecht! 🙁

Du siehst, ich indexiere die News neu, doch leider verschwindet das Keyword nicht aus dem Index.

jonas8 ·

also was meinst du mit

2) Indexierung manuell starten
6) Indexierung wieder manuell starten

Indexierug per FrontEnd, Seitenaufruf ?

Bei meiner Testinstallation habe ich
'Disable Indexing in Frontend' aktiviert
also FrontEnd Indexierung ausgeschaltet.

Warscheinlich ist der Index per FE und der Index per
'Indexierungseinstellungen' nicht der Selbe.

Kannst ja mal nach schauen unter 'Web - Info - Indexsuche'
was, wann, wie oft indexiert wird.

und auf der Seite mit der LIST-Ansicht habe ich
'Nicht suchen:' aktiviert. Damit das nicht Indexiert
wird. Macht ja wenig Sinn

Gruss Jonas

karob ·

hallo,

erstmal möchte ich sagen das dies ein sehr hilfreicher thread ist.

dann zu meiner frage, die indexierung klappte prinzipiell auch über den cronjob.
mein problem ist das dies viel zu langsam von statten geht ungefähr 3 seiten pro minute. wobei ich bei den einstellungen gewagte 1000 pro minute ausgewählt habe.

hat jemand eine idee?

gruß robert

mccoy ·

Hallo Jonas,

danke auch für diesen Thread er hat mir auch weitergeholfen.

Ich hatte das Problem, dass ich mit der Extension "modern downloads" Dokumente verwalte. Die Indexed Search findet aber diese Dokumente nicht. Wir setzen aber gearde im Intranet sehr auf die Volltextsuche und daher war es notwendig eine Lösung zu finden.

Eins vorab: Ich habe mich mit dem Thema erst seit ein paar Stunden beschhäftigt und es kann durchaus sein, dass manche Einstellungen überflüssig sind oder sogar falsch. Aber so läuft es bei mir. 😉

Folgende Vorgehensweise: (TYPO3 4.2.1)

1. Wichtige Dokus:
http://typo3.org/documentation/document-library/extension-manuals/doc_indexed_search/2.10.0/view/toc/0/
http://typo3.org/documentation/document-library/extension-manuals/crawler/2.0.0/view/toc/0/
http://wiki.typo3.org/index.php/Ext_crawler#configure_crawler
Und dieser Thread natürlich ;-)

2. Voraussetzung Indexed Serach ist installiert und läuft:
Installieren der Ext Crawler (ganz normal über Erw. Manager/Import), dann beim Erw. Manager in der Indexed Serach Extension den Haken setzen "Use "crawler" extension to index ex..".

3. In Setup der Root Seite folgende TS Code einsetzen:

config.index_enable = 1
config.index_externals = 1

(Schaltet die Indexierung ein und auch die von externen Files)

4. Im PageTS folgenden Code hinzufügen:

#-----------------------CRAWLER----------------------#
tx_crawler.crawlerCfg.paramSets {
content = &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
content.procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
content.baseUrl = http://derPfadzuDeinemProjekt
}

# crawler für User der Gruppe 1, und ANY ??
tx_crawler.crawlerCfg.paramSets {
gruppe1 < tx_crawler.crawlerCfg.paramSets.content
gruppe1.userGroups = 1, 0, -2
}

Oder wie hier im Thread bereits diskutierte andere Varianten können natürlich auch verwendet werden.

5. In der Benutzerverwaltung einen BE User mit den Namen _cli_crawler anlegen. Diesem ein beliebiges Passwort vergeben und am besten keine weiteren Rechte zuweisen.

6. Eine Seite Typ "Nicht im Menü" erstellen dort das Inhaltselement "Indixierungseinstellungen" anlegen. Dann einen Titel vergeben, den Typ "Dateipfad auf dem Server" auswählen und den Pfad zum dem Ordner indem die Dokumente liegen und indexiert werden sollen, eintragen. Also z.B. "fileadmin/Dateien/Website_Intanet/Abteilungsdokumente/". Evtl. weitere Unterebenen durch das Select Menü "Tiefe" einstellen.

7. Nun muss man einen CronJob auf dem Server einrichten. Bei den Linux Machinen mit z.B. OpenSuse installiert geht das als Root so🙁wie bereits beschrieben)

crontab -e
[Insert Modus wechseln "i"]
x x x x /der/Pfad/zu/deinemProjekt/typo3conf/ext/crawler/cli/crawler_cli.phpsh
[Insert Modus verlassen "Esc"]
Datei mit :w! speichern und mit :q! verlassen (gibt auch eine Kombination von den Befehlen, aber egal...)

( x x x x bedeutet nun, dass der Cron jede Minute läuft. Ich habe auch gelesen, dass es mit den Berechtigungen Probleme geben kann. Also darauf achten, dass die Datei "crawler_cli_phpsh" ausführbar ist. Ansonsten z.B. mit chmod 744 nachhelfen.)

8. Testen ob der Job funktioniert indem man diesen mit der vollen(!!) Pfadangabe aufruft, z.B. so:
/der/Pfad/zu/deinemProjekt/typo3conf/ext/crawler/cli/crawler_cli.phpsh

(Sollte keine Meldung abgeben, selbst wenn was kommt trotzdem mal ins BE schauen und den nächsten Schritt durchführen.)

9. In BE wechseln und auf das Modul "Web > Info" wechseln. Dann auf unseren neue Seite vom Typ "nicht im Menü" und dort im obersten SelectMenü den Eintrag "SiteCrawler" auswählen. Im darunterliegenden zweiten SelectMenü "CLI Status" auswählen".

Nun sollte man in der kleinen Tabelle sehen, dass der Cron läuft und indexiert.
Am Counter erkennt man auch wieviele Dateien indexiert wurden. Wechselt man zurück auf "Index Suche" im obersten SelectMenü und im darunterliegenden auf "Technische Details" sollte man die indexierten Files sehen.

Nun kann man danach suchen und sollte auch klappen.

Sollte es nicht klappen, kann ich das WIKI-Tutorial empfehlen. Dort unter Troubleshooting sind ein paar gute Tipps zu finden. Ansonsten gibt es auch ein paar Mailingliste, die sich mit den Thema beschäftigt haben. (Goolge fragen..)

Für Korrekturen und Änderungen bin ich natürlich dankbar.

Grüße
Andy

Edit:
Ich hätte da auch noch ein paar Fragen:
Ist es wirklich notwendig, wenn man nur externe Files indexieren möchte, dass man den Haken "Disable Indexing in Frontend" im Erweiterungs Manager bei der Extension "Indexed Search" herausnimmt? Stoppt das nicht auch den kompletten Indexierungprozess der Indexed Search im FE? Oder schalte ich das durch das o.g. TypoScript wieder ein? Wenn ja, was hat das für einen Sinn?

leave- ·

Hallo alle zusammen,

der Tread ist wirklich gut.
Bei mir hat es auch kurzzeitig funktioniert 😉
Ich habe in einem SYS-Folder die Indexierung erstellt mit den dazugehörigen Einträgen. Nach dem ich einen neuen Artikel eingestellt habe, finde ich diesen Artikel nur mit dem Account vom Reakteur.

Alle anderen finden den Artikel nicht.

Kann mir da einer weiterhelfen?? Sitze hier schon Stunden dran. Danke

jonas8 ·

Hallo

Also ist das Problem den News-Beitrag im Backend angezeigt zu bekommen? Habe ich das richtig verstanden?

Ist es ein Berechtigunsproblem, dass der Beitrag nicht angezeigt wird? Mit einem Admin-User sieht man normalerweise alle Elemente.

Die Indexierungseinstellungen für die News habe ich auf der Seite wo die News-Vollansicht ist.

Gruss Jonas

leave- ·

Nein 😉

Die News werden alle richtig angezeigt, im Backend als auch im Frontend.
Für alle.
Die Suchmaschine findet allerdings keinen neuen Artikel. Nur wenn man den Artikel mit seinem eigenen Account anlegt.
Habe jetzt die Indexierungseinstellung in meinen News-Ordner kopiert, allerdings ihne Erfolg.

Wir haben mehrer News-Ordner und auch mehrere Benutzergruppen.

Zum testen habe ich diese TYPO-Scrip auf der Main-Page angelegt:

#--------------------------------
# Indexed Search (Crawler)
#--------------------------------
tx_crawler.crawlerCfg.paramSets {

# User in no group
language = &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
language.procInstrFilter = tx_indexedsearch_reindex
language.baseUrl = http:// /intranet/index.php

# User in group 1
group1 = &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
group1.procInstrFilter = tx_indexedsearch_reindex
group1.baseUrl = http: //intranet/index.php
group1.userGroups = 1
}

#set up a crawl for users that arent logged in
tx_crawler.crawlerCfg.paramSets.test =
tx_crawler.crawlerCfg.paramSets.test {
cHash = 1
procInstrFilter = tx_indexedsearch_reindex, tx_indexedsearch_crawler
baseUrl = http:// /intranet/index.php

#set up a crawl for users who have group id of 1,4,5
tx_crawler.crawlerCfg.paramSets.grp1 < tx_crawler.crawlerCfg.paramSets.test
tx_crawler.crawlerCfg.paramSets.grp1{
userGroups = 0,-2,1,4,5
}

#set up a crawl for users who have group id of 3,7,8
tx_crawler.crawlerCfg.paramSets.grp2 < tx_crawler.crawlerCfg.paramSets.test
tx_crawler.crawlerCfg.paramSets.grp2{
userGroups = 0,-2,3,7,8
}

# Default - Pages
#tx_crawler.crawlerCfg.paramSets.std =
#tx_crawler.crawlerCfg.paramSets.std {
#Angaben was ausgefuehrt werden soll
#procInstrFilter = tx_indexedsearch_reindex
#baseUrl = http:// /intranet/index.php
#}

tx_crawler.crawlerCfg.paramSets {
language = &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
language.procInstrFilter = tx_indexedsearch_reindex, tx_cachemgm_recache
language.baseUrl = http:// /intranet/index.php

projekte_news = &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:220]
projekte_news.procInstrFilter = tx_indexedsearch_reindex, tx_cachemgm_recache
projekte_news.cHash = 1
projekte_news.pidsOnly = 172
projekte_news.baseUrl = http:// intranet/index.php

EDV_news= &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:212]
EDV_news.procInstrFilter = tx_indexedsearch_reindex, tx_cachemgm_recache
EDV_news.cHash = 1
EDV_news.pidsOnly = 236
EDV_news.baseUrl = http:// /intranet/index.php

Ist was viel oder??? 🙂

Habe die Seite unter Web->Info-> SiteCrawler ; alle indexiert, allerdings können die News-Ordner nicht geöffnet werden. News Projekte No entries

Muss ich die Indexierung,welche jetzt im News Ordner liegt, auf eine andere Allternativt Quellseite legen??

jonas8 ·

Hi

Ich komme nicht nach was denn jetzt das Problem ist.

Also ich habe bei einem Projekt auf der Startseite bei den Seiteneigenschaften folgendes TSconfig PAGE:

# ###################################################
# Konfiguration des Crawler für Neu-Indexierung
# ###################################################

# crawler für nicht angemeldete User
  tx_crawler.crawlerCfg.paramSets.content = 
  tx_crawler.crawlerCfg.paramSets.content {
      procInstrFilter = tx_indexedsearch_reindex
      baseUrl = http://www.fachpresse.com/
 }

# crawler für User der Gruppe 1
   tx_crawler.crawlerCfg.paramSets.gruppe1 < tx_crawler.crawlerCfg.paramSets.content
   tx_crawler.crawlerCfg.paramSets.gruppe1 {
	userGroups = 1
 }

Und für die News habe ich auf der Seite wo das News-Single ist einen Datensatz 'Indexierungseinstellungen'

Zeitversatz nach Mitternacht: 1:30
Wie häufig soll eine Reindexierung vorgenommen werden?: täglich (24 Stunden)
Typ: Datensätze
Zu indexierende Tabelle: Nachrichten (oder jezt heisst es wohl wieder News)
Felder (erstes ist Titel): title,short,bodytext
GET-Parameter-String (mit ###UID###-Ersetzung): &tx_ttnews[tt_news]=###UID###

So das wärs,
Gruss Jonas

leave- ·

Genauso habe ich das jetzt eingestellt.
Kann es sein das ich durch meine 10 User-Gruppen Probleme bekomme??
Oder durch meine 10 News Ordner??

jonas8 ·

Hi

Und funktioniert es jetzt besser?

Ja, das kann schon Probleme machen, mit soviel Gruppen. Einfach ausprobieren und testen. Hatte es bis jetzt nur mit einer Gruppe zu tun.

Mit so viel News Ordner habe ich das noch nie gemacht. Sind es denn auch viele News? Eventuell könnte man mehrere Einzalansichten machen und die Indexierungseinstellungen auf diese Einzelansichten verteilen.

Gruss Jonas

leave- ·

Vielen Dank. Er Indexiert jetzt alles. Es sind viele News und die einzelen Fachbreiche sollen auch nur für Ihren Bereich Zugriffsrechte bekommen.
Komisch ist allerdings, dass ich bei der Indexierung nur auf den News-Ordner EDV verwiesen habe, allerdings wird der Artikel in der Finanzabteilung, welchen ich gerade angelegt habe, auch angezeigt.

Also braucht man anscheinend nur ein Mal eine Indexierung für alle Ordner vorzunehmen. Ich werde es aber noch mal testen und berichten.

Ein Problem habe ich noch mit dem Löschen alter Artikel.
Die Suchmschine findet News die es schon seit 2-3 Wochen nicht mehr gibt??
Das Problem scheint ja nicht neu zu sein.

Eine Idee?

Gruß Thomas