我正在向文档添加一个字段,如下所示:
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));