1
//create
Document doc = new Document();
//get value from JDBC ResultSet
doc.add(new LongDocValuesField("LastContactTime", rs.getLong("LastContactTime")));
//....
//Search
Sort sort = new Sort(new SortField("LastContactTime",
                    SortField.Type.LONG, false));
TopDocs rs = scher.search(query, total, sort);

結果が正しくソートされません。なぜですか? 私はLucene4.0を使用しています

4

1 に答える 1

1

LongDocValuesFieldは、 LongFieldとは本質的に多少異なります。

( http://www.searchworkings.org/blog/-/blogs/377217によると) 次のように、setUseIndexValues を呼び出すだけで並べ替えることができるようです。

SortField field = new SortField("LastContactTime",
                SortField.Type.LONG, false);
field.setUseIndexValues(true);
Sort sort = new Sort(sort);
于 2012-12-19T19:58:30.817 に答える