aVogt
Returning Creator

URl von einer Seite ermitteln

Hallo,

für ein Projekt sollen Medien und Seiten an Exalead (PushApi) übergeben werden.

Um von dem Suchergebnis die Medien bzw. Seiten auch aufzurufen, benötige ich auch die URL unter dem die Seiten/Medien aufgerufen werden können.

Bei Meiden hab ich es geschaft.

Bei den Seiten komme ich nicht weiter. Ich habe eine Pageref, die ich indexieren will und von der ich die URL benötige. Bei PageRef gibt es die Methode

    getUrl(UrlCreatorProvider urlCreatorProvider, Language lang, TemplateSet templateSet, PageParams pageParams, int mode)

Nun habe ich das Problem, dass ich nicht weiß, was bzw. wie ich UrlCreatorProvider und PageParams (was muss da alles angegeben werden) angeben muss.

Ist di o.g. Methode die, mit der ich die URL der Seite auch bekomme, oder muss ich einen anderen Weg benutzen (wenn ja welchen)?

Kann mir jemand einen Hinweis geben, wie ich an die URL einer Seite komme?

Das Übergeben der Seiten bzw. Medien will ich über einen Auftrag abhandeln.

0 Kudos
12 Replies
marro
Crownpeak employee

Ich zitiere hier nochmal Ihre Antwort aus Exalead: crawlwer oder PushApi

Andreas Vogt schrieb:

Für das Pushen werde ich einen extra Auftrag definieren, in dem ich die Medien und Seiten ermittle und an Exalead übergebe. Über Variablen auf den Strukturordnern bzw. Metadaten bei den Medienordnern kann ich dann Ordner von der Suche ausschließen (entweder alle Medien/Seiten des jeweiligen Ordners an Exalead übergeben oder nicht).

Ich glaube, hier liegt ein grundsätzliches Verständnisproblem zur Funktionsweise und Verwendung des EnterpriseSearch-Moduls für FirstSpirit vor. Es ist nicht notwendig, Medien und Seiten zu ermitteln, welche man dann selbst an Exalead übergibt. Das erledigt alles das Exalead-Push Skript, welches durch das EnterpriseSearch-Modul zur Verfügung gestellt wird. Wird dieses Skript im Anschluss an ein Deployment ausgeführt, so werden automatisch alle generierten Seiten und Medien an Exalead übergeben. Bei einem Volldeployment betrifft das den kompletten Auftritt, bei einem Teildeployment nur den ausgewählten Bereich. Dabei wird der Basispfad (Prefix) der URL in den Eigenschaften des Skripts definiert.

Beispiel:

In den Skript-Eigenschaften definierter URL-Prefix: http://www.e-spirit.com/

Vom EnterpriseSearch-Modul ermittelter Dateiname einer beispielhaften Seite: de/product/modules/enterprisesearch.html

Resultierende URL, unter der die Seite später in den Suchergebnissen verlinkt ist: http://www.e-spirit.com/de/product/modules/enterprisesearch.html

aVogt
Returning Creator

Das erledigt alles das Exalead-Push Skript, welches durch das EnterpriseSearch-Modul zur Verfügung gestellt wird.


Ok, habe das Script nun gefunden. Aber: Ich habe dort keine Möglichkeit gefunden, um zusätzliche Daten mit zu übergeben?

0 Kudos
marro
Crownpeak employee

In den Eigenschaften des Skripts kann man angeben, für welche Verwaltungen (Medien, Inhalte, Struktur) die Metadaten eines Dokuments zusammen mit dem Dokument übertragen werden sollen. Den Rest erledigt das Modul. Siehe dazu auch Abschnitt zum Parameter 'Pushing meta data for stores' in Kapitel 6.3 der Dokumentation zu diesem Modul.

0 Kudos
aVogt
Returning Creator

So einen Punkt find ich nicht ... Doku Version 1.4 vom 10.08.2010

0 Kudos
marro
Crownpeak employee

Die aktuelle Version des Moduls zusammen mit der aktuellen Doku (Version 1.6) können Sie über helpdesk@e-spirit.com anfordern.

0 Kudos
aVogt
Returning Creator

nun hab ich zumindest die Doku. Da Sie ja auch die Doku geschrieben haben ... habe ich gleich noch ein paar Fragen:

Wir verwenden keine Zugriffswerte auf der zu indexierenden Seite und lassen auch bei der Generierung die ACl nicht erstellen. Funktioniert das trotzdem (in dem Screen 6.2 Seite 70  steht ...FromAclDb...)

Müssen die zusätzlichen Metadaten-Eingabefelder bei jeder Seite/Medium vorhanden sein, oder nimmt das Script nur die die er findet?

Frage zu Begin/End of non-indexing area:

Wird der HTML-Header mit indexiert? z.B. Titel/Stichwörter/Beschreibung oder muss ich mich selber darum kümmern?

Wo wirkt das Begin/End of non-indexing area (in der gesamten-Datei oder nur im body-Tag)?

Weitere Bemerkung zu dem Script:

Wie schon in dem Ticket Exalead: crawlwer oder PushApi beschrieben, kann kein Ausschluss der Seiten/Medien erfolgen. Dies kann über ein Teildeployment vorgenommen werden.Geht, hat aber den großen Nachteil, dass Seiten/Medien immer dem Teildemployment hinzugefügt/entfernt werden muss.

Ein weiter Punkt spricht aus unserer Sicht gegen den Einsatz des Scriptes:

Wir haben Vordrucke und Formulare auf unserer Seite verföffentlicht (http://www.sab.sachsen.de/de/foerderung/formularservice/gesamtansicht/index.html). Die werden zwar im System erfasst (Name und Nummer), liegen aber nicht auf unserem System, sondern auf einem Formularserver des Freistaates. Die URL dazu wird erfasst. Über ein eigenes Script kann ich einen Eintrag für alle Vordrucke/Fordrucke erzeugen, der bei Name und Nummer gefunden wird, aber gleich auf das richtige Ziel zeigt (das funktioniert - haben wir im Intranet umsetzen lassen).

Nun haben wir auch noch einige Seiten bei denen das der Fall ist.

Da ich nicht einen Teil mit dem von Ihnen erwähneten Script und einen Teil mit einem eigenen Script abhandeln will, wollte ich alles in einem eigenen Script abhandeln. Nun fehlt mir halt nur noch die Ermittlung des Links einer Seite ...

Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt.

Ist das Ermitteln eines Seitenlinks (wie er veröffentlicht ist) eigentlich "öffentlich" und kann verwendet werden?

Ergänzende Frage:

Ich wollte nun mal das Script verwenden, aber ich kann keine "Namen" mit Leerzeichen eingeben wie in Bild 6-2  auf Seite 70. Wie müssen die angegeben werden

0 Kudos
marro
Crownpeak employee

Wir verwenden keine Zugriffswerte auf der zu indexierenden Seite und lassen auch bei der Generierung die ACl nicht erstellen. Funktioniert das trotzdem (in dem Screen 6.2 Seite 70  steht ...FromAclDb...)

Die ACL wird nur dann (zwingend) benötigt, wenn zusätzlich zum Inhalt des Dokuments auch Berechtigungen oder Metadaten gepusht werden sollen. Der Methodenaufruf lautet zwar "...fromAclDb", funktioniert aber auch ohne generierter ACL.

Müssen die zusätzlichen Metadaten-Eingabefelder bei jeder Seite/Medium vorhanden sein, oder nimmt das Script nur die die er findet?

Da man die verfügbaren Metadaten-Eingabefelder nur global für das gesamte Projekt definieren kann, sind sie somit natürlich automatisch bei jeder Seite/Medium vorhanden.

Frage zu Begin/End of non-indexing area:

Wird der HTML-Header mit indexiert? z.B. Titel/Stichwörter/Beschreibung oder muss ich mich selber darum kümmern?

Wo wirkt das Begin/End of non-indexing area (in der gesamten-Datei oder nur im body-Tag)?

Die gängigen Metas im HTML-Header werden von Exalead automatisch berücksichtigt. Definiert man zusätzliche, eigene Metatags, müssen diese in Exalead über einen DocumentFilter ausgelesen werden.

Die Begin- und End-Tags wirken in der gesamten Datei.

Ein weiter Punkt spricht aus unserer Sicht gegen den Einsatz des Scriptes:

Wir haben Vordrucke und Formulare auf unserer Seite verföffentlicht (http://www.sab.sachsen.de/de/foerderung/formularservice/gesamtansicht/index.html). Die werden zwar im System erfasst (Name und Nummer), liegen aber nicht auf unserem System, sondern auf einem Formularserver des Freistaates. Die URL dazu wird erfasst. Über ein eigenes Script kann ich einen Eintrag für alle Vordrucke/Fordrucke erzeugen, der bei Name und Nummer gefunden wird, aber gleich auf das richtige Ziel zeigt (das funktioniert - haben wir im Intranet umsetzen lassen).

Sie können den Einsatz des Push-Skripts und des Crawlers auch kombinieren. Inhalte, die aus FirstSpirit stammen, pushen Sie mit dem Skipt in den Index. Zusätzlich können Sie Exalead dann noch z.B. über http://www.sab.sachsen.de/de/foerderung/formularservice/gesamtansicht/index.html crawlen lassen, damit die dort verlinkten Dokumente ebenfalls indiziert werden.

Da ich nicht einen Teil mit dem von Ihnen erwähneten Script und einen Teil mit einem eigenen Script abhandeln will, wollte ich alles in einem eigenen Script abhandeln. Nun fehlt mir halt nur noch die Ermittlung des Links einer Seite ...

Wie würden Sie denn in einem eigenen Skript die generierten Dokumente auf den Exalead-Server pushen?

Ist das Ermitteln eines Seitenlinks (wie er veröffentlicht ist) eigentlich "öffentlich" und kann verwendet werden?

Ja, das sollte Teil der öffentlichen API und somit nutzbar sein.

0 Kudos
marro
Crownpeak employee

Ergänzende Frage:

Ich wollte nun mal das Script verwenden, aber ich kann keine "Namen" mit Leerzeichen eingeben wie in Bild 6-2  auf Seite 70. Wie müssen die angegeben werden

Wenn Sie die aktuelle Version (1.2) des Moduls verwenden (welches wie auch die Doku über den Helpdesk zu beziehen ist), dann können Sie auch die alternative Schreibweise für die Parameternamen verwenden, die ab Version 1.1 unterstützt werden.

0 Kudos
aVogt
Returning Creator

Wie würden Sie denn in einem eigenen Skript die generierten Dokumente auf den Exalead-Server pushen?


Wir haben uns für ein anderes Projekt ein PushApi-Script von Ihnen erstellen lassen (Ansprechparnter war Herr Thal).

Da kamen die Daten jedoch alle aus mehreren datenquellen mit einer Unzahl verschiedener Metadaten.

Dies würde ich fast genauso wieder machen wollen (ob es geht werden ich dann sehen - für medien sollte es gehen, für Seiten war ich am testen umd kam wegen dem Link nicht weiter ...).

Etwas spricht noch gegen das "fertige" Script:

In der Struktur haben wir mehrere Hauptbereiche (Wirtschaft, Immobilien, Service ....). Diese Bereiche sollen über die Suche abfragbar sein bzw. soll das Suchergebnis nach diesen Bereichen verfeinert werden können.  Wenn ich mich nicht irre werden die Metadaten an der Inhaltsseite angegeben. Da eine Seite in unterschiedlichen Bereichen eingefügt werden kann, kann ich die Metadaten nicht verwenden.

Ja, das sollte Teil der öffentlichen API und somit nutzbar sein.

Wenn das öffentlich ist, Wwas muss ich da bei

etUrl(UrlCreatorProvider urlCreatorProvider, Language lang, TemplateSet templateSet, PageParams pageParams, int mode)

für UrlCreatorProvider und PageParams (was muss da alles angegeben werden) angeben?

Ich möchte gern den Weg mit einem eigenen Script testen, ob er funktioniert. Bei dem "fertigen" Script sehe ich einige Beschränkungen (insbesondere das keine Seiten/Medien von der Suche ausgeschlossen werden könenen - bei einem Volldeployment und ein Teildeployment will ich nicht nehmen, da dieses ggf immer wieder angepasst werden muss).

0 Kudos