Hi, No, the problem is easy: To sort against a field you have to index it. The field is only stored. Later versions of Lucene will complain, if the field is not indexed (as far as I remember, there was a commit about this). But currently it is sorting against nothing, so it will do the default order.
Data types are correct from your code! Please note: If you want to use the field *only* for sorting, but no numeric range queries, then use Integer.MAX_VALUE as precisionStep, else you index unneeded terms and bloat your index (see JavaDocs for explanation). Uwe ----- Uwe Schindler H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de eMail: [email protected] > -----Original Message----- > From: 石玉明 [mailto:[email protected]] > Sent: Saturday, March 26, 2011 2:26 AM > To: [email protected] > Subject: Re: Sorting by NumericField not working > > NumericField include int float double ... and so on. but your sort uses > SortField.int . Maybe that is the key point. > -- newbie of Lucene > > > 2011-03-26 > > > > 石玉明 > > > > 发件人: Azhar Jassal > 发送时间: 2011-03-25 22:23:46 > 收件人: [email protected] > 抄送: > 主题: Sorting by NumericField not working > > Hi, > > I'm trying to sort results by a NumericField but the results do not sort > (still appear in default score order). The NumericField was indexed using > the code below: > > NumericField field = new NumericField(name, > NumericUtils.PRECISION_STEP_DEFAULT, Field.Store.YES, false); > field.setIntValue(value); > document.add(field); > > The searcher uses the following code to attempt to sort at search: > > Sort sortBySize = new Sort(new SortField[] { new SortField("subj", > SortField.INT) }); > TopFieldDocs topDocs = searcher.search(tq, null, limit, sortBySize); > > Any ideas please? Is this the right method of sorting using a NumericField? > > Az --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
