网上介绍的Lucene分组查询的过程大多比较复杂,这里提供一个较为简单的实现,可以满足基本的分组查询需求。
1.首先引入依赖
<!--组查询-->
<!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-grouping -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-grouping</artifactId>
<version>7.2.1</version>
</dependency>
2.创建索引
/**
* 添加索引文档
*
* @param groupField
* @param writer
* @throws IOException
*/
public static void addDocuments(String groupField, IndexWriter writer)
throws IOException {
// 0
Document doc = new Document();
addGroupField(doc, groupField, "author1");
doc.add(new StringField("author", "author1", Field.Store.YES));
doc.add(new TextField("content", "random text", Field.Store.YES));
doc.add(new StringField("id", "1", Field.Store.YES));
writer.addDocument(doc);
// 1
doc = new Document();
addGroupField(doc, groupField, "author1");
doc.add(new StringField("author", "author1