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

Sol*_*gon 4 java sorting lucene

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

doc.add(new TextField("productName", prod.getProductName(), Field.Store.YES));
Run Code Online (Sandbox Code Playgroud)

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

Sort sorter = new Sort(); 
SortField sortField = new SortField("productName", Type.STRING, false);
sorter.setSort(sortField);
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?我如何按字母顺序排序?

fem*_*gon 12

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

doc.add(new TextField("productName", prod.getProductName(), Field.Store.YES));
doc.add(new StringField("productNameSort", prod.getProductName(), Field.Store.NO));
Run Code Online (Sandbox Code Playgroud)