我正在向文档添加一个字段,如下所示:

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);

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

最佳答案

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

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

10-06 00:56