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]