Marco
You haven't answered Matt's question about where you are running it from. Tomcat's default directory may well not be the same as yours. I strongly suggest that you use a full path name and/or provide some evidence that your readers and writers are using the same directory and thus lucene index. -- Ian. On Wed, May 20, 2009 at 9:59 AM, Marco Lazzara <marco.lazz...@gmail.com> wrote: > I've posted the indexing part,but I don't use this in my app.After I > create the index,I put that in a folder like /home/marco/RDFIndexLucece > and when I run the query I'm only searching (and not indexing). > > String[] fieldsearch = new String[] {"name", "synonyms", "propIn"}; > //RDFinder rdfind = new RDFinder("RDFIndexLucene/",fieldsearch); > TreeMap<Integer, ArrayList<String>> paths; > try { > this.paths = this.rdfind.Search(text, "path"); > } catch (ParseException e1) { > e1.printStackTrace(); > } catch (IOException e1) { > e1.printStackTrace(); > } > > Marco Lazzara >> Sorry, anyhow looking over this quickly here's a summarization of what >> I see: >> >> You have documents in your index that look like the following: >> >> name which is indexed and stored. >> synonyms which are indexed and stored >> path, which is stored but not indexed >> propin, which is stored and indexed >> propinnum, which is stored but not indexed >> and ... vicinity I guess which is stored but not indexed >> >> For an analyzer you are using Standard analyzer (which considering all >> the Italian? is an interesting choice.) >> >> And you are opening your index using FSDirectory, in what appears to >> be a by reference fashion (You don't have a fully qualified path to >> where your index is, you are ASSUMING that its in the same directory >> as this code, unless FSDirectory is not implemented as I think it is.) >> >> Now can I see the consumer code? Specifically the part where you are >> opening the index/constructing your queries? >> >> I'm betting what's going on here is you are deploying this as a war >> file into tomcat, and its just not really finding the index as a >> result of how the war file is getting deployed, but looking more >> closely at the source code should reveal if my suspicion is correct here. >> >> Also runtime wise, when you run your standalone app, where >> specifically in your directory structure are you running it from? >> Cause if you are opening your index reader/searcher in the same way as >> you are creating your writer here, I'm pretty darn certain that will >> cause you problems. >> >> Matt >> >> >> >> Marco Lazzara wrote: >>> _Could you further post your Analyzer Setup/Query Building code from >>> BOTH apps. _ >>> >>> there is only one code.It is the same for web and for standalone. >>> And it is exactly the real problem!!the code is the same,libraries are >>> the same,query index etc etc. are the same. >>> >>> This is the class that create index >>> >>> >>> public class AlternativeRDFIndexing { >>> private Analyzer analyzer; >>> private Directory directory; >>> private IndexWriter iwriter; >>> private WordNetSynonymEngine wns; >>> private AlternativeResourceAnalysis rs; >>> public ArrayList<String> commonnodes; >>> //private RDFinder rdfind = new RDFinder("RDFIndexLucene/",new >>> String[] {"name"}); >>> // public boolean Exists(String node) throws ParseException, >>> IOException{ >>> // // return rdfind.Exists(node); >>> // } >>> public AlternativeRDFIndexing(String inputfilename) throws >>> IOException, ParseException{ >>> commonnodes = new ArrayList<String>(); >>> // bisogna istanziare un oggetto per fare analisi sul >>> documento rdf >>> rs = new AlternativeResourceAnalysis(inputfilename); >>> >>> ArrayList<String> nodelist = rs.getResources(); >>> int nodesize = nodelist.size(); >>> ArrayList<String> sourcelist = rs.getsource(); >>> int sourcesize = sourcelist.size(); >>> //sinonimi >>> wns = new WordNetSynonymEngine("sinonimi/"); >>> //creazione di un analyzer standard >>> analyzer = new StandardAnalyzer(); >>> >>> //Memorizza l'indice in RAM: >>> //Directory directory = new RAMDirector(); >>> //Memorizza l'indice su file >>> directory = FSDirectory.getDirectory("RDFIndexLucene/"); >>> //Creazione istanza per la scrittura dell'indice >>> //Tale istanza viene fornita di analyzer, di un boolean per >>> indicare se ricreare o meno da zero >>> //la struttura e di una dimensione massima (o infinita >>> IndexWriter.MaxFieldLength.UNLIMITED) >>> iwriter = new IndexWriter(directory, analyzer, true, new >>> IndexWriter.MaxFieldLength(25000)); >>> //costruiamo un indice con solo n documenti: un >>> documento per nodo >>> for (int i = 0; i < nodesize; i++){ >>> Document doc = new Document(); >>> //creazione dei vari campi >>> // ogni documento avrˆ >>> // un campo name: nome del nodo >>> // indicazione di memorizzazione(Store.YES) e indicizzazione >>> con analyzer(ANALYZED) >>> String node = nodelist.get(i); >>> //if (sourcelist.contains(node)) break; >>> //if (rdfind.Exists(node)) commonnodes.add(node); >>> Field field = new Field("name", node, >>> Field.Store.YES,Field.Index.ANALYZED); >>> //Aggiunta campo al documento >>> doc.add(field); >>> //Aggiungo i sinonimi >>> String[] nodesynonyms = wns.getSynonyms(node); >>> for (int is = 0; is < nodesynonyms.length; is++) { >>> field = new Field("synonyms", >>> nodesynonyms[is], >>> Field.Store.YES,Field.Index.ANALYZED); >>> //Aggiunta campo al documento >>> doc.add(field); >>> } >>> // uno o piu campi path_i: path minimali dalle >>> sorgenti al nodo >>> // non indicizzati >>> for (int j = 0; j < sourcesize; j++) { >>> String source = sourcelist.get(j); >>> ArrayList<LinkedList<String>> path = new >>> ArrayList<LinkedList<String>>(); >>> try{ >>> if ((source.equals(node)) || >>> (sourcelist.contains(node))){ >>> field = new Field("path", "null", Field.Store.YES, >>> Field.Index.NO); >>> doc.add(field); >>> } >>> else{ >>> path = rs.getPaths(source, node); >>> for (int ii = 0; ii < path.size(); ii++) { >>> String pp = rs.getPath(path.get(ii)); >>> field = new Field("path", pp, Field.Store.YES, >>> Field.Index.NO); >>> doc.add(field); } >>> } >>> } >>> catch (IllegalArgumentException e){ >>> System.out.println("source: "+source+ " node: "+node); >>> field = new Field("path", "null", Field.Store.YES, >>> Field.Index.NO); >>> doc.add(field); >>> } >>> } >>> // proprietˆ entranti >>> // indicizzati >>> //versione con i sinonimi >>> ArrayList<String> y = rs.getInProperty(node); >>> if (y != null) { >>> >>> for (int j = 0; j < y.size(); j++) { >>> String propin = y.get(j); >>> field = new Field("propIn", propin, Field.Store.YES, >>> Field.Index.ANALYZED); >>> doc.add(field); >>> String[] propinsynonyms = wns.getSynonyms(propin); >>> for (int is = 0; is < propinsynonyms.length; >>> is++) { >>> field = new Field("propIn", >>> propinsynonyms[is], >>> Field.Store.YES,Field.Index.ANALYZED); >>> //Aggiunta campo al documento >>> doc.add(field); >>> } >>> } >>> // un campo num_propIn: numero di proprietˆ >>> entranti >>> // non indicizzato >>> String num_propIN = String.valueOf(y.size()); >>> field = new Field("num_propIn", num_propIN, >>> Field.Store.YES, >>> Field.Index.NO); >>> doc.add(field); >>> } >>> else { >>> String num_propIN = String.valueOf(0); >>> field = new Field("num_propIn", >>> num_propIN, >>> Field.Store.YES, Field.Index.NO); >>> doc.add(field); >>> } >>> // i vicini del nodo >>> ArrayList<String> v = rs.getVicini(node); >>> if (v != null) { >>> >>> for (int j = 0; j < v.size(); j++) { >>> String vicino = v.get(j); >>> field = new Field("vicini", vicino, Field.Store.YES, >>> Field.Index.ANALYZED); >>> doc.add(field); } >>> } >>> //aggiunta documento >>> all'indice >>> iwriter.addDocument(doc); >>> } >>> iwriter.close(); >>> directory.close(); >>> } >>> public int getNR(){ >>> return rs.NumResource(); >>> } >>> >>> >>> } >>> >>> MARCO LAZZARA >>> >>> >>>> Things that could help us immensely here. >>>> >>>> Can you post your indexReader/Searcher initialization code from your >>>> standalone app, as well as your webapp. >>>> >>>> Could you further post your Analyzer Setup/Query Building code from >>>> both apps. >>>> >>>> Could you further post the document creation code used at indexing >>>> time? (Which analyzer, and which fields are indexed/stored) >>>> >>>> Give us this, and I'm pretty darn sure we can nail down your issue. >>>> >>>> Matt >>>> >>>> Ian Lea wrote: >>>> >>>>>> ... >>>>>> There are no exceptions.When I run the query a new shell is >>>>>> displayed but >>>>>> with no result. >>>>>> >>>>> New shell? >>>>> >>>>> >>>>> >>>>>> _*Are you sure the index is the same - what do IndexReader.maxDoc(), >>>>>> numDocs() and getVersion() say, standalone >>>>>> and in tomcat? >>>>>> >>>>>> *_What do you mean with this question?? >>>>>> >>>>> IndexReader ir = ... >>>>> System.out.printf("maxDoc=%s, ...", ir.maxDoc(), ...); >>>>> >>>>> and run in tomcat and standalone. To absolutely confirm you're >>>>> looking at the same index, and it has documents, etc. >>>>> >>>>> >>>>> -- >>>>> Ian. >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org >>>>> For additional commands, e-mail: java-user-h...@lucene.apache.org >>>>> >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org >>>> For additional commands, e-mail: java-user-h...@lucene.apache.org >>>> >>>> >>>> >>>> >>>> __________ Information from ESET NOD32 Antivirus, version of virus >>>> signature database 4087 (20090519) __________ >>>> >>>> The message was checked by ESET NOD32 Antivirus. >>>> >>>> http://www.eset.com >>>> >>>> >>>> >>> >>> >>> >>> __________ Information from ESET NOD32 Antivirus, version of virus >>> signature database 4087 (20090519) __________ >>> >>> The message was checked by ESET NOD32 Antivirus. >>> >>> http://www.eset.com >>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org >>> For additional commands, e-mail: java-user-h...@lucene.apache.org >>> >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org >> For additional commands, e-mail: java-user-h...@lucene.apache.org >> >> >> >> >> __________ Information from ESET NOD32 Antivirus, version of virus >> signature database 4088 (20090519) __________ >> >> The message was checked by ESET NOD32 Antivirus. >> >> http://www.eset.com >> >> > > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4088 (20090519) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org