Lucene Java在TextField上排序 - 按字母顺序排列

时间:2014-03-19 20:09:14

标签: java sorting lucene

我正在向Document添加一个字段:

doc.add(new TextField("productName", prod.getProductName(), Field.Store.YES));

但是当我进行搜索并尝试排序时,我不按字母顺序排列:

Sort sorter = new Sort(); 
SortField sortField = new SortField("productName", Type.STRING, false);
sorter.setSort(sortField);

我做错了吗?我如何按字母顺序排序?

1 个答案:

答案 0 :(得分:12)

SortField不应该被标记化。如果您需要将字段标记为有效搜索并对其进行排序,则可以在同一内容上创建单独的未标记字段(StringField),并对该字段进行排序,如:

doc.add(new TextField("productName", prod.getProductName(), Field.Store.YES));
doc.add(new StringField("productNameSort", prod.getProductName(), Field.Store.NO));