ColdFusionMX, Verity und PDFs…

by kai on 16/07/2003



Ich stand letztens mal vor dem Problem eine Collection von pdf-Files indizieren zu müssen und die Suchergebnisse nicht nach “Relevanz” oder URL geordnet ausgeben zu müssen, sondern nach dem Datum der letzten Änderung des Files. CFSEARCH liefert als Ergebnis ein Query-Objekt mit diversen Default-Spalten.
Meine erste Idee war mit einem Aufruft von CFDIRECTORY ein weiteres Query zu erzeugen, das den Inhalt des entsprechenden Ordners liefert und dann mit dem Verity-Query über ein Query of Queries gejoint werden kann. Diese Lösung hat aber spätestens dann ein Problem, wenn man nicht über einen Ordner, sondern über komplexe Ordnerstrukturen indiziert. Man kann das zwar mit Hilfe rekursiver Aufrufe von CFDIRECTORY nachbilden, aber nicht ohne beträchtlichen Aufwand.

Viel cooler ist es, ein Feature von Verity zu verwenden, das sich Custom Styles nennt. Man angenommen, Ihr habt bereits über den ColdFusion-Administrator Eure Collection angelegt. Im Ordner dieser Collection (also nicht im Ordner mit den indizierten Files – sondern dort, wo die eigentlichen Collectiondaten abgelegt werden) finden sich zwei Unterordner (file und custom). Jeder dieser Unterordner hat einen weiteren Ordner style, in dem man eine Datei style.sfl findet.

In diesen Dateien kann man Felder CF_CUSTOM1 und CF_CUSTOM2 definieren, die dann von ColdFusion im Ergebnis-Query des CFSEARCH-Tags entsprechend gefüllt werden. Die anzupassenden Stellen sehen wie folgt aus:

# Modified date is filled in by: flt_pdf, flt_kv, vgw_url, vspider, zone -email -news
fixwidth: Modified 4 date
/alias = Date
/alias = FTS_ModificationDate
/alias = Recorded_Date
/alias = Version_Date
/alias = CF_CUSTOM1

# Creation date is filled in by: flt_pdf, vgw_url, vspider
fixwidth: Created 4 date
/alias = FTS_CreationDate
/alias = CF_CUSTOM2

Nach erfolgreicher Änderung sollte die Collection mit CFINDEX einmal neu indiziert werden und ab diesem Zeitpunkt liefert eine Abfrage mit CFSEARCH zwei mit den entsprechenden Werten gefüllte Spalten (hier Modified Date und Creation Date).

Analog dazu kann man auch viele andere Felder, die Verity eigentlich liefert, die ColdFusion aber nicht default-mäßig nach aussen gibt, abfragen und benutzen.

Einen guten (aber leider etwas veralteten Einstieg) bietet diese Online-Doku zu Verity, da sich die CF-eigene Dokumentation doch mehr oder wenig ausschweigt…

http://www.ojp.usdoj.gov/search97/doc/user/istoc.htm

Comments on this entry are closed.

Previous post:

Next post: