When I use groupingSearch specified as SortedNumericDocValuesField, I got an "unexpected docvalues type NUMERIC for field 'id' (expected=SORTED)" Exception.
My code is as follows: String indexPath = "tmp/grouping"; Analyzer standardAnalyzer = new StandardAnalyzer(); Directory indexDir = FSDirectory.open(Paths.get(indexPath)); IndexWriterConfig indexWriterConfig = new IndexWriterConfig(standardAnalyzer); indexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE); IndexWriter masterIndex = new IndexWriter(indexDir, indexWriterConfig); String name = "Tom"; for (int i = 1; i < 5; i++) { Document doc = new Document(); doc.add(new StringField("name", name + "_" + i, Field.Store.YES)); doc.add(new SortedNumericDocValuesField("id", i)); doc.add(new StoredField("id", i)); masterIndex.addDocument(doc); } masterIndex.commit(); masterIndex.commit(); IndexReader reader = DirectoryReader.open(FSDirectory.open(Paths.get(indexPath))); IndexSearcher searcher = new IndexSearcher(reader); GroupingSearch groupingSearch = new GroupingSearch("id"); TopGroups topGroups = groupingSearch.search(searcher, new MatchAllDocsQuery(), 0, 100); System.out.println(topGroups.totalHitCount); reader.close(); The exception is as follows: Exception in thread "main" java.lang.IllegalStateException: unexpected docvalues type SORTED_NUMERIC for field 'id' (expected=SORTED). Re-index with correct docvalues type. at org.apache.lucene.index.DocValues.checkField(DocValues.java:317) at org.apache.lucene.index.DocValues.getSorted(DocValues.java:369) at org.apache.lucene.search.grouping.TermGroupSelector.setNextReader(TermGroupSelector.java:56) at org.apache.lucene.search.grouping.FirstPassGroupingCollector.doSetNextReader(FirstPassGroupingCollector.java:348) at org.apache.lucene.search.SimpleCollector.getLeafCollector(SimpleCollector.java:33) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:643) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:443) at org.apache.lucene.search.grouping.GroupingSearch.groupByFieldOrFunction(GroupingSearch.java:141) at org.apache.lucene.search.grouping.GroupingSearch.search(GroupingSearch.java:113) The version of Lucene I am using is 8.0.0. Finally, I want to know how groupingSearch specifies three fields: NumericDocValuesField, SortedNumericDocValuesField, SortedSetDocValuesField? Thank you for your attention to this matter!