Index-Zugriff via Java

Hier finden YaCy User Hilfe wenn was nicht funktioniert oder anders funktioniert als man dachte. Bei offensichtlichen Fehlern diese bitte gleich in die Bugs (http://bugs.yacy.net) eintragen.
Forumsregeln
In diesem Forum geht es um Benutzungsprobleme und Anfragen für Hilfe. Wird dabei ein Bug identifiziert, wird der thread zur Bearbeitung in die Bug-Sektion verschoben. Wer hier also einen Thread eingestellt hat und ihn vermisst, wird ihn sicherlich in der Bug-Sektion wiederfinden.

Index-Zugriff via Java

Beitragvon thilo » Do Feb 05, 2009 1:25 pm

Hallo YaCy-Community!

ich habe ein Servlet geschrieben, welches via Java den Index (RWI) meiner lokalen YaCy-Installation abfragt und die Ergebnisse dann weiterverarbeitet. Dazu erzeuge ich mir ein Objekt vom Typ "plasmaSwitchboard" und führe dann eine Abfrage aus (Input für dieses Snippet: YACY_DIRECTORY und QUERY_WORD; mein Servlet Referenziert die YaCy-Class-Files und die dort verwendeten JAR's; mit diesen Infos sollte der Code lauffähig sein):

<code>
...
plasmaSwitchboard sb = new plasmaSwitchboard(new File(YACY_DIRECTORY), "defaults/yacy.init", "DATA/SETTINGS/yacy.conf", false);
String keyhash = indexWord.word2hash(QUERY_WORD);
final serverObjects result = new serverObjects();
final plasmaSearchRankingProcess ranking = plasmaSearchAPI.genSearchresult(result, sb, keyhash, null);
plasmaSearchAPI.genURLList(result, keyhash, QUERY_WORD, ranking, null, -1);
...
</code>

Das ergebnis steht am Ende in der Hashmap "result".

Mein Problem ist 1.: Das "sb"-Objekt bringt ja gewissen Overhead mit sich, startet einige Threads, bietet Funktionalität zum Crawlen, lädt deutlich über 1 Minute, verbraucht viel Speicher, ... ich brauche für die Abfrage eigentlich aber kein komplettes YaCy am laufen, sondern nur die Möglichkeit, den Index abzufragen. Komme ich da auch einfacher hin, indem ich spezialisiertere Klassen instantiiere?

2. Frage: Habe ich, den RWI als Datenbasis vorausgesetzt, die Möglichkeit, das gemeinsame Auftreten von Worten abzufragen, also z.B. zu einem gegebenen Suchwort die Top 5 Worte zurückzugeben, die mit ihm gemeinsam auf den gecrawlten Seiten auftauchen?

Beste Grüße - Thilo
thilo
 
Beiträge: 10
Registriert: Di Jan 06, 2009 1:36 pm

Re: Index-Zugriff via Java

Beitragvon Orbiter » Do Feb 05, 2009 1:39 pm

zur 1. Frage
wenn du ein YaCy-Servlet meinst: das Switchboard-Objekt bekommst du beim Aufruf des Servlets übergeben, das musst du nicht instantiieren:
Code: Alles auswählen
    public static serverObjects respond(final httpRequestHeader header, final serverObjects post, final serverSwitch<?> env) {
        final plasmaSwitchboard sb = (plasmaSwitchboard) env;
...

Gucke doch mal in die Servlet-Klassen rein, bsp. htroot/Status.java

zur 2. Frage muss ich nochmal nachdenken.
Orbiter
 
Beiträge: 5796
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Index-Zugriff via Java

Beitragvon thilo » Do Feb 05, 2009 1:50 pm

Orbiter hat geschrieben:zur 1. Frage
wenn du ein YaCy-Servlet meinst:


Nein, ich baue/brauche ein "echtes" Servlet, also eines, das von javax.servlet.http.HttpServlet abgeleitet ist und in einem separaten Tomcat läuft. Nur intern muss ich halt den RWI von YaCy abfragen. Meine Codesnipepts, wie man das Switchboard instantiiert und eine Query absetzt, habe ich aber tatsächlich aus dem Code diverser YaCy-Servlets zusammengesucht.
thilo
 
Beiträge: 10
Registriert: Di Jan 06, 2009 1:36 pm


Zurück zu Fragen und Antworten

Wer ist online?

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