int total = 0;
if (groupField != null) {
RAMDirectory ramDirectory = new RAMDirectory();
IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_32, getAnalyzer());
IndexWriter writer = new IndexWriter(ramDirectory, indexWriterConfig);
// 如果分组结果,使用分组控制器对结果分组
GroupingCollector groupingCollector = new GroupingCollector(sortField, desc, groupField);
searcher.search(query, groupingCollector);
List<Document> s_documents = groupingCollector.getDocuments();
writer.addDocuments(s_documents);
writer.optimize();
writer.close();
searcher = new IndexSearcher(ramDirectory);
}
// 如果不分组,直接对查询结果进行返回
TopDocs topFieldDocs = null;
if (!"".equals(Util.strNull(sortField))) {
int type = SortField.INT;
if (sortField.endsWith("date")) {
type = SortField.LONG;
} else if (sortField.startsWith("nprice")) {
type = SortField.DOUBLE;
}
topFieldDocs = searcher.search(query, end, new Sort(new SortField(sortField, type, desc)));
} else {
topFieldDocs = searcher.search(query, end, new Sort(SortField.FIELD_SCORE));
}
total = topFieldDocs.totalHits;
烂掉一塌糊涂 ,不在解释!~