Technische Fragen zu Lucene

Allgemeines und Nachrichten zu Suchmaschinen-Themen

Technische Fragen zu Lucene

Beitragvon roughdog » Do Mär 06, 2008 11:25 pm

Hallo,

zunächst einmal möchte ich mich kurz vorstellen, denn ich habe hier noch nicht geposted. Ich komme aus Aachen und bin Entwickler für Webanwendungen. Mit dem Thema Suchmaschinen muss ich mich allerdings beruflich nicht auseinandersetzen, da (im Moment) bei der Firma daran kein Bedarf besteht. Stattdessen ist dieses Thema für mich im Moment etwas, in das ich einen Teil meiner Freizeit investiere. Das hat zwei Gründe: Zum einen stört mich die Abhängigkeit von einem Monopolisten wie Google, weshalb ich die Entwicklung von Yacy und ähnlichen Projekten gerne verfolge (aber wegen mangelnder Java-Kenntnisse leider nichts dazu beitragen kann). Zum anderen habe ich mir das Buch "Programming Collective Intelligence" gekauft, von dem ich mehr als nur begeistert bin.
Alle Beispiele in diesem Buch sind sehr einfach mit Python und SQLite umgesetzt, eignen sich natürlich nicht für einen Cluster- oder Produktivbetrieb, aber das Experimentieren mit den Beispielen im Buch macht auch bereits bei kleinen Datenmengen sehr, sehr viel Spaß.

Trotzdem wollte ich ein bisschen "rauere" Luft der Praxis spüren und passe ein paar Scripte aus dem Buch an und wollte sie auch von einem mit SQLite simulierten Index auf das echte "Lucene" umbauen. Zwar benutze ich PyLucene, aber das ist sehr kompatibel. Nun zu meiner Frage:

Für jedes Dokument, das von meinem <100-Zeilen-Crawler gefunden wird, werden folgende Felder angelegt:
- Contents (text, tokenized, stored) -> Der Inhalt der gefundenen Seite
- docID (text, untokenized, stored) -> Die URL
Darüberhinaus speichere ich noch die URLs, auf die das gefundene Dokument verlinkt.
Code: Alles auswählen
for link in params['links']:
      doc.add(self.Lucene.Field("linksto", link, self.Lucene.Field.Store.YES, self.Lucene.Field.Index.UN_TOKENIZED))

mit doc.getValues("links) bekomme ich auch alle Links wieder da heraus, eine sehr feine Sache, diese Art von Hinzufügen.

Was mich nun interessiert:
Ist diese Art der Speicherung (mehrfach ein Feld füllen) im Sinne des Erfinders für das Abbilden von Link-Graphen? Im Wiki von Lucene habe ich diese Vorgehensweise gefunden, allerdings mit dem Ziel, dass jemand mehrere Kategorien speichern will.

Wie bekomme ich nun, sagen wir, die meist-verlinkte Seite aus dem Index wieder raus. Ein Index von Lucene ist ja schließlich keine relationale Datenbank...



Ich hoffe, mir kann hier jemand helfen.


Vielen Dank
roughdog
roughdog
 
Beiträge: 1
Registriert: Do Mär 06, 2008 11:10 pm

Re: Technische Fragen zu Lucene

Beitragvon Orbiter » Mo Mär 10, 2008 11:09 am

Hallo roughdog
ich finde gut das du hier nach Lucene fragst, auch wenn wir hier ja das YaCy-Forum sind und Lucene in gewisser Weise Konkurrenz darstellt. Das ist aber egal, wir können von solchen Fragen nur lernen. Falls sich also jemand hier mit Lucene auskennt dann bitte nur her mit Infos.

Und mich würde das ausserdem auch interessieren ob man in Lucene auf einfachen Weg Indexdaten wieder rausbekommt. Bei YaCy geht das ja in gewisser Weise über das Webinterface, das man dann ja auch scripten kann. Ist aber auf jeden Fall ein nicht sonderlich performanter Weg.
Orbiter
 
Beiträge: 5799
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main


Zurück zu Suchmaschinen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

cron