Phil, Lucene returns results in the same order as they were added to the index. So if you want to sort by date, and only by date then add documents to your index in chronological order.
If you want to sort by more than one field, then one solution (and probably the fastest) is to get all terms of a given field and sort them along with their unique Lucene ID. Then, when you want to sort the subset of results, so the sort yourself based on the ID without using the index (using the index to get the values to sort will be much slower then getting all the values first and storing them). This was done in SearchBean in the contributions area if you want to see an example. I hope this helps --Peter On Monday, September 2, 2002, at 01:32 PM, Philipp Chudinov wrote: > Thank you, Terry. But I need to do it without additional classes or > smth. > I just can not understand the problem... I've tried to reindex the > stuff > with > > doc.add(Field.Keyword("_published", DateField.dateToString(date))); > > and to search with > > Query query = new RangeQuery(null, new Term("_published", > DateField.dateToString(new java.util.Date())), true); > DateFilter filter = DateFilter.Before("_published", new > java.util.Date()); > Hits hits = searcher.search(query, filter); > > maybe, I misunderstand how to use this filter? Does RangeQuery > automatically > order results by field? Looks like it should... people in the > mailinglist > says, that my first approach works well (when encoding date to string > with > pattern(yyyyMMdd), but iam still lobotomized;( > Phil. > > ----- Original Message ----- > From: "Terry Steichen" <[EMAIL PROTECTED]> > To: "Lucene Users List" <[EMAIL PROTECTED]> > Sent: Tuesday, September 03, 2002 1:16 AM > Subject: Re: Order by date > > >> Try Peter Carlson's SearchBean contribution. Check the messages - >> there > was >> quite a bit of discussion on it. >> >> Regards, >> >> Terry >> >> ----- Original Message ----- >> From: "Philipp Chudinov" <[EMAIL PROTECTED]> >> To: "Lucene Users List" <[EMAIL PROTECTED]> >> Sent: Monday, September 02, 2002 3:21 PM >> Subject: Order by date >> >> >>> Hi! >>> How can I order search results by date? I just need to show n >>> documents, >>> ordered by date (desc). I index documents with >>> >>> doc.add(Field.Keyword("_published", new >>> SimpleDateFormat("yyyyMMddHHmmss").format(date))); >>> >>> , so it gives something like "20020619165800" in this field. Then I >>> use >>> RangeQuery(null, currentdate(formatted the same way >>> indexed("yyyyMMddHHmmss"), true). But results are not ordered >>> properly. >>> Looks like this: >>> >>> 20020619165800 >>> 20020619165800 >>> 20020619165800 >>> 20020711170700 >>> 20020711170700 >>> 20020705131800 >>> 20020705131800 >>> 20020619165900 >>> >>> So, how can I order them? Should I write some kind of "DateFilter" >>> (as >>> suggested here >>> > http://www.mail-archive.com/lucene-user@jakarta.apache.org/ > msg01266.html)? >>> If so, can't anybody explane me, how can I do this, since I feel >>> myself > as >> a >>> lobotomized flatworm now:( >>> >>> Thanx. >>> >>> >>> -- >>> To unsubscribe, e-mail: >> <mailto:[EMAIL PROTECTED]> >>> For additional commands, e-mail: >> <mailto:[EMAIL PROTECTED]> >>> >>> >> >> >> -- >> To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> >> For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> >> > > > -- > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>