Thanks Mark, Yes "fr" is fileReader but I don't think is positioned at the end of file because the same problem occurs when I pass to MoreLikeThis the File (C:\\Document.txt) instead of a fileReader...
So also if I write: MoreLikeThis mlt = new MoreLikeThis(ir); Query query = mlt.like(new File(C:\\Document.txt)); query is empty... I don't know... mark harwood wrote: >>> if (fr != null){ >>> System.out.println("Parsing FileReader: " + fr); >>> query = mlt.like(fr); > > Not clear from your code but "fr" isn't the same object as "fileReader" is it? > If so, that could be positioned at the end of the file and MoreLikeThis would > therefore read nothing. > > > > ----- Original Message ---- > From: Davide <[EMAIL PROTECTED]> > To: java-user@lucene.apache.org > Sent: Wednesday, 19 July, 2006 11:28:38 AM > Subject: Re: Problem finding similar documents with MoreLikeThis method. > > > mark harwood wrote: >> Looks like the class defaults to only searching a field called "contents". >> >> Either: >> a) call setFieldNames() with null to force the class to use a list of all >> indexed fields derived from your IndexReader >> or >> b) call setFieldNames() with the explicit shortlist of field names you want >> to match on >> >> >> Cheers >> Mark >> > > I've tried but It still doesn't work. I've called the method: > > setFieldNames(new String[]{"Field1", "Field2", ...}) with "Field1", > "Field2" the fields I used when I index the files but nothing *Query* is > still empty and MoreLikeThis doesn't work... I don't think the problem > is this. > > > For simplicity I give you a general code (a test) that doesn't work, You > can try it and tell me if also for you the code doesn't work... > > I have also tried the *main* code of MoreLikeThis class and it doesn't > work.. (I have changed the Index_dir and the document to add to index) > > ------------------------------------------------------------------------ > -------------------- MoreLikeThis Test --------------------------------- > ------------------------------------------------------------------------ > > //Build an IndexWriter object to build an index > IndexWriter writer = new IndexWriter("C:\\Temp\\index", new > StandardAnalyzer(), true); > > //----- Adding a document to index ---- > Document doc = new Document(); > File f = new File("C:\\Document.txt"); > FileReader fileReader = new FileReader(f); > > Field field = new Field("contents", fileReader, Field.TermVector.YES); > > doc.add(field); > writer.addDocument(doc); > //-------------------------------------- > > > //Optimize index and close > writer.optimize(); > System.out.println("The documents in the index are: "+writer.docCount()); > writer.close(); > > > //-------- Now try to find similar documents > > Directory indexDir = FSDirectory.getDirectory("C:\\Temp\\index", false); > > IndexReader ir = IndexReader.open(indexDir); > > MoreLikeThis mlt = new MoreLikeThis(ir); > > //mlt.setFieldNames(new String[] {"contents"}); > > Query query = null; > if (fr != null){ > System.out.println("Parsing FileReader: " + fr); > query = mlt.like(fr); > > } > > System.out.println("The Query is: " + query); > > IndexSearcher is = new IndexSearcher(indexDir); > > Hits hits = is.search(query); > > for (Iterator iterDoc = hits.iterator(); iterDoc.hasNext();) { > > Hit hit = (Hit)iterDoc.next(); > System.out.println("\n\nSimilar file: "+hit.get("contents")); > } > ------------------------------------------------------------------------------ > > NOTE: > 1) Document.txt is a text file containg some text > > > I really don't understand why It doesn't work... I'm feel lost... :( > > > > > Riprendo quanto scritto da anonimo in precedenza (con piccole correzioni), > per dargli il giusto risalto, in quanto le argomentazioni addotte mi paiono > assolutamente interessanti. > > ----------------------------------------- > > L'obbligo di corrispondere ad un Ente X una tassa di possesso di > un'apparecchiatura Z per fruizione di servizi erogati da X ma anche, in parte > preponderante e totalmente gratuita, da un insieme di altri Enti YY, > condiziona in modo grave il diritto dell'utenza alla fruizione gratuita dei > soli servizi erogati da YY. > Se l'Ente X si configura come servizio pubblico deve erogare solo servizio > pubblico non finalizzato a lucro, e solo chi lo utilizza può essere > assoggettato a pagamento a favore del Pubblico Erario (e non certo di X) di > un equo corrispettivo del servizio effettivamente goduto, indipendentemente > da dubbie controversie sul possesso di apparecchiature Z. > Se l'Ente X non si configurasse come servizio pubblico, o anche laddove il > servizio di X assumesse di fatto le stesse caratteristiche di servizi privati > forniti da Enti YY venendo meno alle regole di servizio pubblico, > diventerebbe discriminatoria della libera concorrenza e implicitamente > anticostituzionale qualsiasi legge proponente introiti a favore del solo > operatore X e quindi a danno degli operatori YY. > Allo stato dell'arte attuale, pagare solo X per detenere un sistema Z di > fruizione dei servizi di X+YY è quanto meno ingiusto, monopolistico, > anticoncorrenziale, iniquamente penalizzante gli Enti YY, oltre che > disgustoso nella forma in cui è imposto. > E' come se i proventi della tassa di circolazione auto li incamerasse per > legge solo una certa azienda automobilistica nazionale... (a parte che la > realtà non sarà molto diversa). > > --------------------------------------- > > Premesso ciò, ed in attesa che le nuove tecnologie di Z trasformino le > modalità di fruizione di detti servizi, rendendo possibili forme di pagamento > basate sugli effettivi utilizzi di quanto erogato sia da X che da YY a > condizioni liberamente accettate dall'Utenza, diamo una serie di consigli > comportamentali, praticamente un prontuario per l'Utenza stessa. > > ----------------------------------------------- > Consigli comportamentali per l'Utenza. > ----------------------------------------------- > > Non possedete apparecchiature di tipo Z ossia soggette a versamento canone, e > X insiste a chiedervelo sottintendendo che siete evasore e minacciandovi in > conseguenza: inviate ad X raccomandata RR in cui dichiarate sotto Vs. > responsabilità di non avere alcun possesso di Z marchingeni soggetti a > canone, ma aggiungete che dimostrazione contraria spetta a X, restando voi > disponibili a verifica ispettiva legalmente autorizzata, ma evidenziate che > qualunque abuso in tal senso, come anche qualsiasi ulteriore insistenza di > richieste accompagnata o meno da velate minacce o anche qualunque > acquisizione illecita e/o non documentata di Vs. informazioni personali > coperte da privacy verranno valutate in sede competente. > > Possedete un marchingeno Z soggetto a canone di cui già corrispondete ad X > tassa di possesso, e desiderate liberarvene: idem come sopra, stessa > procedura, stessa raccomandata RR, cambia solo la frase "dichiaro di non > possedere" con la frase "dichiaro di non aver più in mio possesso". E' > sufficente, garantito! > > Avete appena acquistato un apparecchio Z, o ve lo hanno regalato, o l'avete > vinto alla lotteria, insomma ne siete in possesso, ma non lo avete ancora > regolarizzato, ad esempio perchè non avete fatto in tempo in quanto ve lo ha > da poco regalato un altro soggetto regolarmente abbonato, come vostro nonno > non convivente. Ma intanto, come rapace falco, il sinistro ispettore > dell'Ente X vi piomba alla porta tra capo e collo: prima di concedere > l'accesso alla Vs. abitazione verificate bene l'attendibilità delle > credenziali di chi pretende di ispezionarvi attraverso l'apertura parziale > della porta bloccata dal catenino, e se la cosa non appare più che legittima > o anche se solo la qualifica con cui si è definito inizialmente il > personaggio non corrisponde perfettamente alle credenziali esibite, chiamate > direttamente la Polizia (113) denunciando tentata violazione di domicilio e/o > millantato credito, ma se non ve la sentite semplicemente chiudete la porta > contestando l'intervento; > eventualmente il 113 lo farete se il sinistro figuro prende a calci la > porta... Se invece tutto è legalmente autorizzato (ed è improbabile), prima > di togliere la catena dichiarate spontaneamente a priori il regalo, > l'acquisto, la vincita o altro di X come cosa appena avvenuta, ed esternate > la vostra intenzione di regolarizzarne il possesso appena possibile: > l'ispettore di X ha raggiunto il suo scopo (assicurarsi la provvigione per > acquisizione nuovo abbonato), vi farà firmare tale dichiarazione, vi > consegnerà il modulo di abbonamento standard non maggiorato, e vedrete che si > placherà senza neppure entrare. Chiaramente anche il giorno dopo potreste > decidere di buttar via l'apparecchio Z in questione, disgustati dalla qualità > dei programmi trasmessi ...! In tal caso procedete come al punto precedente. > > Non dovrebbero esseci altre casistiche (l'ultima va opportunamente > interpretata). > > --------------------------------------- > > Ovviamente, dopo aver ricevuto RR di ritorno relativa a raccomandata inviata > ad X coi suddenti contenuti, potete permettervi di ignorare ulteriori > comunicazioni; non state a mettere in campo altre sanguisughe per la > soddisfazione di far zittire X, lasciate fare, siate superiori a queste > beghe... > > Comunque è buona norma acquistare sempre Z in contanti, ed anche componenti > isolati di Z, o comunque riconducibili a presenza di Z, in modo da non > lasciar alcuna traccia dei Vs. acquisti; a meno che non vogliate divertirvi a > mettere in crisi X, che vi piomberà addoso entro 6 mesi, e potete farlo > accusando X di essere entrato in possesso di Vs. info coperte da privacy di > cui non vi ha concesso preventiva documentazione di liceità e di > identificazione delle fonti; ma sappiate che nel giro trascinate pure il > punto vendita e la Vs. banca ... si sa benissimo chi è coinvolto. Però > ripeto, certe soddisfazioni costano quintali di sanguisughe, secondo me molto > di più della contropartita del sottile piacere che potreste gustare dopo anni. > > Date retta a me, siate superiori a queste beghe, e godetevi le Vs. risorse. > In santa pace. > > A buon intenditor poche parole. > > Bye. > ----------------------------------------------------------- > Modificato dall' autore il 01 giugno 2006 19.54 > ----------------------------------------------------------- > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]