On 19:27 Mi 19 Mär, Jens K. wrote:
das Dateisystem) zu nehmen, und acts_as_ferret das Indizieren der
Inhalte in der Datenbank zu überlassen.
Aber wenn das crawlen der DB-Inhalte per http aus Anwendungssicht
akzeptabel ist (du verlierst damit einiges an features, etwa gezielte
Queries nach Attributen die in strukturierter Form in der DB stehen),
fährst du mit einer reinen RDig-basierten Lösung wie von dir oben
skizziert vom Implementierungsaufwand her womöglich besser. Wenn deine
Inhalte im Dateisystem auch per http erreichbar sind (wozu sollte man
sie sonst finden können?), könntest du sogar die gesamte site in einem
Rutsch per http indizieren.
und genau das, habe ich festellen müssen, ist dramatisch einfach zu
implementieren - einfach wie in der Doku die Root-URL angeben und den
Indexlauf starten: fertig zur Benutzung.
Ich habe ein paar Suchtests via script/console gemacht und bin bis jetzt
ganz zufrieden. Für unsere “Clubseite” ist das mehr als ausrechend.
Außerdem muss ich auch an den armen P3/500 mit 256MB denken 
Was mir aber viel mehr Kopfzerbrechen bereitet ist folgendes:
script/console
Loading development environment (Rails 2.0.2)
search_results = RDig.searcher.search(“nockalm”)
=> <hier genau die Ergebnisse, die ich erwartet habe>
search_results.class
=> Hash
search_results[:list].class
=> Array (an jedem Index steht wieder ein Hash: das wird einfach dachte
ich)
Gib mir einfach die URL der Treffer aus:
search_results[:list].each { | x | print x[:url], “\n” }
Es gibt 2 Ergebnisse (juhui!):
http://localhost:3000/tour/show/1
http://localhost:3000/tour
aber danach kommt nochmal der gesamte Inhalt:
=> [{:url=>“http://localhost:3000/tour/show/1”,
:score=>0.546059131622314, etc. pp… - what??
Ich stehe vollkommen auf dem Schlauch, das geht ja soweit, das ein
search_results[:list].each { | x | x.class }
nicht etwa den Namen des Objektes ausspuckt, sondern ebenfalls dessen
Inhalt. Schreibe ich aber:
search_results[:list][0].class
kommt sehr wohl das erwartete Ergebnis: Hash.
Und um letzte Zweifel zu zerstreuen:
search_results[:list][0][:url] ergibt:
=> “http://localhost:3000/tour/show/1”
ratlos - was mache ich falsch? Ich büffle jetzt schon 3 Stunden
darüber,kann aber meinen Fehler nicht finden…
Für Detailfragen zu Ferret gibt’s auch eine (englischsprachige)
Mailingliste: [email protected]
Im Moment bin ich dankbar dafür, wenn die Basisfunktionalität geht.
Aber danke, wenns Not tut, werde ich das gerne nutzen.
torsten