[voikko] Malaga-Javan uusi versio julkaistu
Hannu Väisänen
hvaisane at joyx.joensuu.fi
Tue Feb 17 08:19:28 EET 2009
On Mon, Feb 16, 2009 at 06:08:33PM +0200, Harri Pitkänen wrote:
> huomasin metodissa StaticMalaga.init(String projectFile) pari ongelmaa. Siinä
> asetetaan ihan alkupuolella
> initialized = true;
> vaikka tuossa vaiheessa ei vielä tiedetä, onnistuuko alustaminen.
Huomasin itsekin ja siirsin sijoituksen initialized = true; funktion
loppuun.
> Sitten kohdassa
> malaga = new Malaga (projectFile);
> if (malaga == null) {
> LOG.severe ("StaticMalaga: Variable malaga is null. This should never
> happen. Exiting.");
> System.exit (1);
> }
> tuo if-lauseen ehto ei tosiaankaan koskaan voi olla Java-kielessä tuossa
> tilanteessa tosi, joten tarkistus on tarpeeton.
Joo, mutta testatessani analyze-funktiota onnistuin kutsumaan sitä
niin, että malaga == null, ja tuo tarkisti, että mahdottomuus ei ollut
päässyt tapahtumaan. Kommentoin sen pois. (Vika oli siinä, että
initialized = true; oli väärässä paikassa. :-)
> Lopuksi logituksessa
> LOG.severe ("StaticMalaga: Can not initialize Malaga.\n" + t.getMessage()
> + "\nExiting.");
> sanotaan "Exiting", muttei tuossa kuitenkaan kutsuta System.exit-funktiota.
Tätä en huomannut. Kiitoksia.
Korjattu versio on imuroitavissa samasta paikasta kuin entinenkin:
http://joyds1.joensuu.fi/programs/index.html
Niin, ja päämäärä on saada Suomi-Malaga toimimaan Nutchin kanssa:
http://lucene.apache.org/nutch/
> Ehkä lisäksi kannattaisi tarkistaa, että jos alustusmetodia kutsutaan toisen
> kerran kun malaga on jo alustettu, oliko pyydetty projektitiedosto sama kuin
> se, millä alustus alun perin tehtiin. Jos tiedosto ei ole sama, kannattaa
> heittää poikkeus, jotta kutsuva puoli saa tietää, ettei se saanutkaan
> haluamaansa tiedostoa käyttöön, vaan siellä on auki joku muu projekti.
Miksi? Malagaa ei saa alustaa kahdesti, mutta useampi kuin yksi
alustusyritys ei välttämättä ole virhe.
Nutchissa tarvitaan jotain tämmöistä:
public class NutchMalagaAnalyzer extends NutchAnalyzer {
public TokenStream tokenStream (String fieldName, Reader reader)
{
TokenStream result = new ...
result = new MalagaFilter (result);
...
return result;
}
}
Funktiota tokenStream kutsutaan jokaisen indeksoitavan tiedoston
kohdalla, mutta Nutchista en ole löytänyt mahdollisuutta (koodia
muuttamatta) alustaa Malagaa muualla kuin MalagaFilterin sisällä.
More information about the voikko
mailing list