Dear all, I'm trying to sort query results using a date criteria. My dates are stored as "long" in the database (I cannot change this) and indexed as untokenized. The sorted resuIts I get aren't consistent. This problem does not occur if the number are "smaller".
Am I doing something wrong ? Is it possible to sort using "long" type ? What else should I do ? Regards & thanks in advance, Tom public void testDateSort(){ System.out.println("[testDateSort][begin]"); IndexWriter mAdIndexWriter=null; Directory adIndexDir=null; Document doc0 = new Document(); doc0.add(new Field("ID","doc0", Field.Store.YES,Field.Index.TOKENIZED)); doc0.add(new Field("DATE","1205000950000", Field.Store.YES,Field.Index.UN_TOKENIZED)); Document doc1= new Document(); doc1.add(new Field("ID","doc1", Field.Store.YES,Field.Index.TOKENIZED)); doc1.add(new Field("DATE","1205000950001", Field.Store.YES,Field.Index.UN_TOKENIZED)); Document doc2 = new Document(); doc2.add(new Field("ID","doc2", Field.Store.YES,Field.Index.TOKENIZED)); doc2.add(new Field("DATE","1205000950002", Field.Store.YES,Field.Index.UN_TOKENIZED)); Analyzer analyser = new SimpleAnalyzer(); try{ adIndexDir=FSDirectory.getDirectory("C:\\YourFavoriteDirectory"); mAdIndexWriter = new IndexWriter(adIndexDir, analyser, true); mAdIndexWriter. addDocument(doc0); mAdIndexWriter. addDocument(doc2); mAdIndexWriter. addDocument(doc1); mAdIndexWriter.optimize(); mAdIndexWriter.close(); IndexReader mAdIndexReader= IndexReader.open(adIndexDir); IndexSearcher searcher = new IndexSearcher(mAdIndexReader); Query query=new FuzzyQuery(new Term("ID","doc"),Float.parseFloat("0.8")); Sort timeSorter=new Sort(new SortField("DATE",SortField.FLOAT, false)); Hits allTheHits=searcher.search(query,timeSorter); for(int i = 0; i <allTheHits.length(); i++){ System.out.println("Date n°" + i + " = " +allTheHits.doc(i).get("DATE")); } mAdIndexReader.close(); }catch(Exception ex){ ex.printStackTrace(); fail(); } System.out.println("[testDateSort][end]"); } --------------------------------- Envoyé avec Yahoo! Mail. Une boite mail plus intelligente.