[jira] [Commented] (LUCENE-6950) DimensionalRangeQuery not working with UninvertingReader

2016-01-11 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/LUCENE-6950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15092063#comment-15092063
 ] 

ASF subversion and git services commented on LUCENE-6950:
-

Commit 1724059 from [~jpountz] in branch 'dev/branches/branch_5x'
[ https://svn.apache.org/r1724059 ]

LUCENE-6950: Move CHANGES entry to 5.4.1.

> DimensionalRangeQuery not working with UninvertingReader
> 
>
> Key: LUCENE-6950
> URL: https://issues.apache.org/jira/browse/LUCENE-6950
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Ishan Chattopadhyaya
> Fix For: 5.5, Trunk
>
> Attachments: LUCENE-6950.patch, LUCENE-6950.patch, LUCENE-6950.patch, 
> LUCENE-6950.patch
>
>
> As I was trying out dimensional fields for SOLR-8396, I realized that 
> DimensionalRangeQuery is not working with UninvertingReader. 
> In Solr, all directory readers are wrapped by an UninvertingReader and an 
> ExitableDirectoryReader. 
> Here's the error:
> {code}
> Exception in thread "main" java.lang.IllegalArgumentException: field="rating" 
> was indexed with numDims=0 but this query has numDims=1
>   at 
> org.apache.lucene.search.DimensionalRangeQuery$1.scorer(DimensionalRangeQuery.java:186)
>   at org.apache.lucene.search.Weight.bulkScorer(Weight.java:135)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:667)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:474)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:593)
>   at 
> org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:451)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:462)
>   at 
> DimensionalRangeQueryExample.query(DimensionalRangeQueryExample.java:66)
> {code}
> Here's an example program to trigger this failure:
> {code}
> import java.io.IOException;
> import java.util.HashMap;
> import java.util.Map;
> import java.util.Random;
> import org.apache.lucene.analysis.standard.StandardAnalyzer;
> import org.apache.lucene.document.DimensionalIntField;
> import org.apache.lucene.document.Document;
> import org.apache.lucene.document.Field;
> import org.apache.lucene.document.Field.Store;
> import org.apache.lucene.document.LegacyIntField;
> import org.apache.lucene.document.StringField;
> import org.apache.lucene.document.TextField;
> import org.apache.lucene.index.DirectoryReader;
> import org.apache.lucene.index.IndexWriter;
> import org.apache.lucene.index.IndexWriterConfig;
> import org.apache.lucene.index.StoredDocument;
> import org.apache.lucene.queryparser.classic.ParseException;
> import org.apache.lucene.search.DimensionalRangeQuery;
> import org.apache.lucene.search.IndexSearcher;
> import org.apache.lucene.search.LegacyNumericRangeQuery;
> import org.apache.lucene.search.Query;
> import org.apache.lucene.search.ScoreDoc;
> import org.apache.lucene.search.TopDocs;
> import org.apache.lucene.store.Directory;
> import org.apache.lucene.store.RAMDirectory;
> import org.apache.lucene.uninverting.UninvertingReader;
> import org.apache.lucene.util.BytesRef;
> public class DimensionalRangeQueryExample {
>   public static void main(String[] args) throws IOException, 
> ParseException {
>   StandardAnalyzer analyzer = new StandardAnalyzer();
>   Directory index = new RAMDirectory();
>   IndexWriterConfig config = new IndexWriterConfig(analyzer);
>   IndexWriter w = new IndexWriter(index, config);
>   addDoc(w, "Lucene in Action", 1);
>   addDoc(w, "Lucene for Dummies", 2);
>   addDoc(w, "Managing Gigabytes", 3);
>   addDoc(w, "The Art of Computer Science", 4);
>   w.commit();
>   w.close();
>   DirectoryReader reader = (DirectoryReader.open(index));
>   Map uninvertingMap = new 
> HashMap<>();
>   uninvertingMap.put("id", UninvertingReader.Type.BINARY);
>   uninvertingMap.put("rating", UninvertingReader.Type.INTEGER);
>   reader = UninvertingReader.wrap(reader, uninvertingMap);
>   IndexSearcher searcher = new IndexSearcher(reader);
>   Query legacyQuery = 
> LegacyNumericRangeQuery.newIntRange("rating_legacy", 1, 4, true, true);
>   Query dimensionalQuery = 
> DimensionalRangeQuery.new1DIntRange("rating", 1, true, 4, true);
>   System.out.println("Legacy query: ");
>   query(legacyQuery, searcher); // works
>   System.out.println("Dimensional query: ");
>   query(dimensionalQuery, searcher); // fails
>   
>   reader.close();
>   }
>   private static void query(Query q, IndexSearcher 

[jira] [Commented] (LUCENE-6950) DimensionalRangeQuery not working with UninvertingReader

2016-01-11 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/LUCENE-6950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15092075#comment-15092075
 ] 

ASF subversion and git services commented on LUCENE-6950:
-

Commit 1724060 from [~jpountz] in branch 'dev/branches/lucene_solr_5_4'
[ https://svn.apache.org/r1724060 ]

LUCENE-6950: Fix FieldInfos handling of UninvertingReader

> DimensionalRangeQuery not working with UninvertingReader
> 
>
> Key: LUCENE-6950
> URL: https://issues.apache.org/jira/browse/LUCENE-6950
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Ishan Chattopadhyaya
> Fix For: 5.5, Trunk, 5.4.1
>
> Attachments: LUCENE-6950.patch, LUCENE-6950.patch, LUCENE-6950.patch, 
> LUCENE-6950.patch
>
>
> As I was trying out dimensional fields for SOLR-8396, I realized that 
> DimensionalRangeQuery is not working with UninvertingReader. 
> In Solr, all directory readers are wrapped by an UninvertingReader and an 
> ExitableDirectoryReader. 
> Here's the error:
> {code}
> Exception in thread "main" java.lang.IllegalArgumentException: field="rating" 
> was indexed with numDims=0 but this query has numDims=1
>   at 
> org.apache.lucene.search.DimensionalRangeQuery$1.scorer(DimensionalRangeQuery.java:186)
>   at org.apache.lucene.search.Weight.bulkScorer(Weight.java:135)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:667)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:474)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:593)
>   at 
> org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:451)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:462)
>   at 
> DimensionalRangeQueryExample.query(DimensionalRangeQueryExample.java:66)
> {code}
> Here's an example program to trigger this failure:
> {code}
> import java.io.IOException;
> import java.util.HashMap;
> import java.util.Map;
> import java.util.Random;
> import org.apache.lucene.analysis.standard.StandardAnalyzer;
> import org.apache.lucene.document.DimensionalIntField;
> import org.apache.lucene.document.Document;
> import org.apache.lucene.document.Field;
> import org.apache.lucene.document.Field.Store;
> import org.apache.lucene.document.LegacyIntField;
> import org.apache.lucene.document.StringField;
> import org.apache.lucene.document.TextField;
> import org.apache.lucene.index.DirectoryReader;
> import org.apache.lucene.index.IndexWriter;
> import org.apache.lucene.index.IndexWriterConfig;
> import org.apache.lucene.index.StoredDocument;
> import org.apache.lucene.queryparser.classic.ParseException;
> import org.apache.lucene.search.DimensionalRangeQuery;
> import org.apache.lucene.search.IndexSearcher;
> import org.apache.lucene.search.LegacyNumericRangeQuery;
> import org.apache.lucene.search.Query;
> import org.apache.lucene.search.ScoreDoc;
> import org.apache.lucene.search.TopDocs;
> import org.apache.lucene.store.Directory;
> import org.apache.lucene.store.RAMDirectory;
> import org.apache.lucene.uninverting.UninvertingReader;
> import org.apache.lucene.util.BytesRef;
> public class DimensionalRangeQueryExample {
>   public static void main(String[] args) throws IOException, 
> ParseException {
>   StandardAnalyzer analyzer = new StandardAnalyzer();
>   Directory index = new RAMDirectory();
>   IndexWriterConfig config = new IndexWriterConfig(analyzer);
>   IndexWriter w = new IndexWriter(index, config);
>   addDoc(w, "Lucene in Action", 1);
>   addDoc(w, "Lucene for Dummies", 2);
>   addDoc(w, "Managing Gigabytes", 3);
>   addDoc(w, "The Art of Computer Science", 4);
>   w.commit();
>   w.close();
>   DirectoryReader reader = (DirectoryReader.open(index));
>   Map uninvertingMap = new 
> HashMap<>();
>   uninvertingMap.put("id", UninvertingReader.Type.BINARY);
>   uninvertingMap.put("rating", UninvertingReader.Type.INTEGER);
>   reader = UninvertingReader.wrap(reader, uninvertingMap);
>   IndexSearcher searcher = new IndexSearcher(reader);
>   Query legacyQuery = 
> LegacyNumericRangeQuery.newIntRange("rating_legacy", 1, 4, true, true);
>   Query dimensionalQuery = 
> DimensionalRangeQuery.new1DIntRange("rating", 1, true, 4, true);
>   System.out.println("Legacy query: ");
>   query(legacyQuery, searcher); // works
>   System.out.println("Dimensional query: ");
>   query(dimensionalQuery, searcher); // fails
>   
>   reader.close();
>   }
>   private static void 

[jira] [Commented] (LUCENE-6950) DimensionalRangeQuery not working with UninvertingReader

2016-01-11 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/LUCENE-6950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15092060#comment-15092060
 ] 

ASF subversion and git services commented on LUCENE-6950:
-

Commit 1724058 from [~jpountz] in branch 'dev/trunk'
[ https://svn.apache.org/r1724058 ]

LUCENE-6950: Move CHANGES entry to 5.4.1.

> DimensionalRangeQuery not working with UninvertingReader
> 
>
> Key: LUCENE-6950
> URL: https://issues.apache.org/jira/browse/LUCENE-6950
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Ishan Chattopadhyaya
> Fix For: 5.5, Trunk
>
> Attachments: LUCENE-6950.patch, LUCENE-6950.patch, LUCENE-6950.patch, 
> LUCENE-6950.patch
>
>
> As I was trying out dimensional fields for SOLR-8396, I realized that 
> DimensionalRangeQuery is not working with UninvertingReader. 
> In Solr, all directory readers are wrapped by an UninvertingReader and an 
> ExitableDirectoryReader. 
> Here's the error:
> {code}
> Exception in thread "main" java.lang.IllegalArgumentException: field="rating" 
> was indexed with numDims=0 but this query has numDims=1
>   at 
> org.apache.lucene.search.DimensionalRangeQuery$1.scorer(DimensionalRangeQuery.java:186)
>   at org.apache.lucene.search.Weight.bulkScorer(Weight.java:135)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:667)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:474)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:593)
>   at 
> org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:451)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:462)
>   at 
> DimensionalRangeQueryExample.query(DimensionalRangeQueryExample.java:66)
> {code}
> Here's an example program to trigger this failure:
> {code}
> import java.io.IOException;
> import java.util.HashMap;
> import java.util.Map;
> import java.util.Random;
> import org.apache.lucene.analysis.standard.StandardAnalyzer;
> import org.apache.lucene.document.DimensionalIntField;
> import org.apache.lucene.document.Document;
> import org.apache.lucene.document.Field;
> import org.apache.lucene.document.Field.Store;
> import org.apache.lucene.document.LegacyIntField;
> import org.apache.lucene.document.StringField;
> import org.apache.lucene.document.TextField;
> import org.apache.lucene.index.DirectoryReader;
> import org.apache.lucene.index.IndexWriter;
> import org.apache.lucene.index.IndexWriterConfig;
> import org.apache.lucene.index.StoredDocument;
> import org.apache.lucene.queryparser.classic.ParseException;
> import org.apache.lucene.search.DimensionalRangeQuery;
> import org.apache.lucene.search.IndexSearcher;
> import org.apache.lucene.search.LegacyNumericRangeQuery;
> import org.apache.lucene.search.Query;
> import org.apache.lucene.search.ScoreDoc;
> import org.apache.lucene.search.TopDocs;
> import org.apache.lucene.store.Directory;
> import org.apache.lucene.store.RAMDirectory;
> import org.apache.lucene.uninverting.UninvertingReader;
> import org.apache.lucene.util.BytesRef;
> public class DimensionalRangeQueryExample {
>   public static void main(String[] args) throws IOException, 
> ParseException {
>   StandardAnalyzer analyzer = new StandardAnalyzer();
>   Directory index = new RAMDirectory();
>   IndexWriterConfig config = new IndexWriterConfig(analyzer);
>   IndexWriter w = new IndexWriter(index, config);
>   addDoc(w, "Lucene in Action", 1);
>   addDoc(w, "Lucene for Dummies", 2);
>   addDoc(w, "Managing Gigabytes", 3);
>   addDoc(w, "The Art of Computer Science", 4);
>   w.commit();
>   w.close();
>   DirectoryReader reader = (DirectoryReader.open(index));
>   Map uninvertingMap = new 
> HashMap<>();
>   uninvertingMap.put("id", UninvertingReader.Type.BINARY);
>   uninvertingMap.put("rating", UninvertingReader.Type.INTEGER);
>   reader = UninvertingReader.wrap(reader, uninvertingMap);
>   IndexSearcher searcher = new IndexSearcher(reader);
>   Query legacyQuery = 
> LegacyNumericRangeQuery.newIntRange("rating_legacy", 1, 4, true, true);
>   Query dimensionalQuery = 
> DimensionalRangeQuery.new1DIntRange("rating", 1, true, 4, true);
>   System.out.println("Legacy query: ");
>   query(legacyQuery, searcher); // works
>   System.out.println("Dimensional query: ");
>   query(dimensionalQuery, searcher); // fails
>   
>   reader.close();
>   }
>   private static void query(Query q, IndexSearcher searcher) throws 

[jira] [Commented] (LUCENE-6950) DimensionalRangeQuery not working with UninvertingReader

2015-12-29 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/LUCENE-6950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15074111#comment-15074111
 ] 

ASF subversion and git services commented on LUCENE-6950:
-

Commit 1722196 from [~rcmuir] in branch 'dev/branches/branch_5x'
[ https://svn.apache.org/r1722196 ]

LUCENE-6950: Fix FieldInfos handling of UninvertingReader

> DimensionalRangeQuery not working with UninvertingReader
> 
>
> Key: LUCENE-6950
> URL: https://issues.apache.org/jira/browse/LUCENE-6950
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Ishan Chattopadhyaya
> Attachments: LUCENE-6950.patch, LUCENE-6950.patch, LUCENE-6950.patch, 
> LUCENE-6950.patch
>
>
> As I was trying out dimensional fields for SOLR-8396, I realized that 
> DimensionalRangeQuery is not working with UninvertingReader. 
> In Solr, all directory readers are wrapped by an UninvertingReader and an 
> ExitableDirectoryReader. 
> Here's the error:
> {code}
> Exception in thread "main" java.lang.IllegalArgumentException: field="rating" 
> was indexed with numDims=0 but this query has numDims=1
>   at 
> org.apache.lucene.search.DimensionalRangeQuery$1.scorer(DimensionalRangeQuery.java:186)
>   at org.apache.lucene.search.Weight.bulkScorer(Weight.java:135)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:667)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:474)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:593)
>   at 
> org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:451)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:462)
>   at 
> DimensionalRangeQueryExample.query(DimensionalRangeQueryExample.java:66)
> {code}
> Here's an example program to trigger this failure:
> {code}
> import java.io.IOException;
> import java.util.HashMap;
> import java.util.Map;
> import java.util.Random;
> import org.apache.lucene.analysis.standard.StandardAnalyzer;
> import org.apache.lucene.document.DimensionalIntField;
> import org.apache.lucene.document.Document;
> import org.apache.lucene.document.Field;
> import org.apache.lucene.document.Field.Store;
> import org.apache.lucene.document.LegacyIntField;
> import org.apache.lucene.document.StringField;
> import org.apache.lucene.document.TextField;
> import org.apache.lucene.index.DirectoryReader;
> import org.apache.lucene.index.IndexWriter;
> import org.apache.lucene.index.IndexWriterConfig;
> import org.apache.lucene.index.StoredDocument;
> import org.apache.lucene.queryparser.classic.ParseException;
> import org.apache.lucene.search.DimensionalRangeQuery;
> import org.apache.lucene.search.IndexSearcher;
> import org.apache.lucene.search.LegacyNumericRangeQuery;
> import org.apache.lucene.search.Query;
> import org.apache.lucene.search.ScoreDoc;
> import org.apache.lucene.search.TopDocs;
> import org.apache.lucene.store.Directory;
> import org.apache.lucene.store.RAMDirectory;
> import org.apache.lucene.uninverting.UninvertingReader;
> import org.apache.lucene.util.BytesRef;
> public class DimensionalRangeQueryExample {
>   public static void main(String[] args) throws IOException, 
> ParseException {
>   StandardAnalyzer analyzer = new StandardAnalyzer();
>   Directory index = new RAMDirectory();
>   IndexWriterConfig config = new IndexWriterConfig(analyzer);
>   IndexWriter w = new IndexWriter(index, config);
>   addDoc(w, "Lucene in Action", 1);
>   addDoc(w, "Lucene for Dummies", 2);
>   addDoc(w, "Managing Gigabytes", 3);
>   addDoc(w, "The Art of Computer Science", 4);
>   w.commit();
>   w.close();
>   DirectoryReader reader = (DirectoryReader.open(index));
>   Map uninvertingMap = new 
> HashMap<>();
>   uninvertingMap.put("id", UninvertingReader.Type.BINARY);
>   uninvertingMap.put("rating", UninvertingReader.Type.INTEGER);
>   reader = UninvertingReader.wrap(reader, uninvertingMap);
>   IndexSearcher searcher = new IndexSearcher(reader);
>   Query legacyQuery = 
> LegacyNumericRangeQuery.newIntRange("rating_legacy", 1, 4, true, true);
>   Query dimensionalQuery = 
> DimensionalRangeQuery.new1DIntRange("rating", 1, true, 4, true);
>   System.out.println("Legacy query: ");
>   query(legacyQuery, searcher); // works
>   System.out.println("Dimensional query: ");
>   query(dimensionalQuery, searcher); // fails
>   
>   reader.close();
>   }
>   private static void query(Query q, IndexSearcher searcher) throws 
> 

[jira] [Commented] (LUCENE-6950) DimensionalRangeQuery not working with UninvertingReader

2015-12-29 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/LUCENE-6950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15074016#comment-15074016
 ] 

ASF subversion and git services commented on LUCENE-6950:
-

Commit 1722165 from [~rcmuir] in branch 'dev/trunk'
[ https://svn.apache.org/r1722165 ]

LUCENE-6950: Fix FieldInfos handling of UninvertingReader

> DimensionalRangeQuery not working with UninvertingReader
> 
>
> Key: LUCENE-6950
> URL: https://issues.apache.org/jira/browse/LUCENE-6950
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Ishan Chattopadhyaya
> Attachments: LUCENE-6950.patch, LUCENE-6950.patch, LUCENE-6950.patch, 
> LUCENE-6950.patch
>
>
> As I was trying out dimensional fields for SOLR-8396, I realized that 
> DimensionalRangeQuery is not working with UninvertingReader. 
> In Solr, all directory readers are wrapped by an UninvertingReader and an 
> ExitableDirectoryReader. 
> Here's the error:
> {code}
> Exception in thread "main" java.lang.IllegalArgumentException: field="rating" 
> was indexed with numDims=0 but this query has numDims=1
>   at 
> org.apache.lucene.search.DimensionalRangeQuery$1.scorer(DimensionalRangeQuery.java:186)
>   at org.apache.lucene.search.Weight.bulkScorer(Weight.java:135)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:667)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:474)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:593)
>   at 
> org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:451)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:462)
>   at 
> DimensionalRangeQueryExample.query(DimensionalRangeQueryExample.java:66)
> {code}
> Here's an example program to trigger this failure:
> {code}
> import java.io.IOException;
> import java.util.HashMap;
> import java.util.Map;
> import java.util.Random;
> import org.apache.lucene.analysis.standard.StandardAnalyzer;
> import org.apache.lucene.document.DimensionalIntField;
> import org.apache.lucene.document.Document;
> import org.apache.lucene.document.Field;
> import org.apache.lucene.document.Field.Store;
> import org.apache.lucene.document.LegacyIntField;
> import org.apache.lucene.document.StringField;
> import org.apache.lucene.document.TextField;
> import org.apache.lucene.index.DirectoryReader;
> import org.apache.lucene.index.IndexWriter;
> import org.apache.lucene.index.IndexWriterConfig;
> import org.apache.lucene.index.StoredDocument;
> import org.apache.lucene.queryparser.classic.ParseException;
> import org.apache.lucene.search.DimensionalRangeQuery;
> import org.apache.lucene.search.IndexSearcher;
> import org.apache.lucene.search.LegacyNumericRangeQuery;
> import org.apache.lucene.search.Query;
> import org.apache.lucene.search.ScoreDoc;
> import org.apache.lucene.search.TopDocs;
> import org.apache.lucene.store.Directory;
> import org.apache.lucene.store.RAMDirectory;
> import org.apache.lucene.uninverting.UninvertingReader;
> import org.apache.lucene.util.BytesRef;
> public class DimensionalRangeQueryExample {
>   public static void main(String[] args) throws IOException, 
> ParseException {
>   StandardAnalyzer analyzer = new StandardAnalyzer();
>   Directory index = new RAMDirectory();
>   IndexWriterConfig config = new IndexWriterConfig(analyzer);
>   IndexWriter w = new IndexWriter(index, config);
>   addDoc(w, "Lucene in Action", 1);
>   addDoc(w, "Lucene for Dummies", 2);
>   addDoc(w, "Managing Gigabytes", 3);
>   addDoc(w, "The Art of Computer Science", 4);
>   w.commit();
>   w.close();
>   DirectoryReader reader = (DirectoryReader.open(index));
>   Map uninvertingMap = new 
> HashMap<>();
>   uninvertingMap.put("id", UninvertingReader.Type.BINARY);
>   uninvertingMap.put("rating", UninvertingReader.Type.INTEGER);
>   reader = UninvertingReader.wrap(reader, uninvertingMap);
>   IndexSearcher searcher = new IndexSearcher(reader);
>   Query legacyQuery = 
> LegacyNumericRangeQuery.newIntRange("rating_legacy", 1, 4, true, true);
>   Query dimensionalQuery = 
> DimensionalRangeQuery.new1DIntRange("rating", 1, true, 4, true);
>   System.out.println("Legacy query: ");
>   query(legacyQuery, searcher); // works
>   System.out.println("Dimensional query: ");
>   query(dimensionalQuery, searcher); // fails
>   
>   reader.close();
>   }
>   private static void query(Query q, IndexSearcher searcher) throws 
> IOException {
>

[jira] [Commented] (LUCENE-6950) DimensionalRangeQuery not working with UninvertingReader

2015-12-28 Thread Robert Muir (JIRA)

[ 
https://issues.apache.org/jira/browse/LUCENE-6950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15073480#comment-15073480
 ] 

Robert Muir commented on LUCENE-6950:
-

In addition to the dimensionCount=0 and dimensionNumBytes=0 causing your 
problem, the dvGen=-1 and attributes=Collections.emptyMap are also bogus. We 
should just pass everything, only difference is dvType comes from "type". Then 
there won't be strange bugs with it, and it won't hide information. 

> DimensionalRangeQuery not working with UninvertingReader
> 
>
> Key: LUCENE-6950
> URL: https://issues.apache.org/jira/browse/LUCENE-6950
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Ishan Chattopadhyaya
> Attachments: LUCENE-6950.patch, LUCENE-6950.patch
>
>
> As I was trying out dimensional fields for SOLR-8396, I realized that 
> DimensionalRangeQuery is not working with UninvertingReader. 
> In Solr, all directory readers are wrapped by an UninvertingReader and an 
> ExitableDirectoryReader. 
> Here's the error:
> {code}
> Exception in thread "main" java.lang.IllegalArgumentException: field="rating" 
> was indexed with numDims=0 but this query has numDims=1
>   at 
> org.apache.lucene.search.DimensionalRangeQuery$1.scorer(DimensionalRangeQuery.java:186)
>   at org.apache.lucene.search.Weight.bulkScorer(Weight.java:135)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:667)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:474)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:593)
>   at 
> org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:451)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:462)
>   at 
> DimensionalRangeQueryExample.query(DimensionalRangeQueryExample.java:66)
> {code}
> Here's an example program to trigger this failure:
> {code}
> import java.io.IOException;
> import java.util.HashMap;
> import java.util.Map;
> import java.util.Random;
> import org.apache.lucene.analysis.standard.StandardAnalyzer;
> import org.apache.lucene.document.DimensionalIntField;
> import org.apache.lucene.document.Document;
> import org.apache.lucene.document.Field;
> import org.apache.lucene.document.Field.Store;
> import org.apache.lucene.document.LegacyIntField;
> import org.apache.lucene.document.StringField;
> import org.apache.lucene.document.TextField;
> import org.apache.lucene.index.DirectoryReader;
> import org.apache.lucene.index.IndexWriter;
> import org.apache.lucene.index.IndexWriterConfig;
> import org.apache.lucene.index.StoredDocument;
> import org.apache.lucene.queryparser.classic.ParseException;
> import org.apache.lucene.search.DimensionalRangeQuery;
> import org.apache.lucene.search.IndexSearcher;
> import org.apache.lucene.search.LegacyNumericRangeQuery;
> import org.apache.lucene.search.Query;
> import org.apache.lucene.search.ScoreDoc;
> import org.apache.lucene.search.TopDocs;
> import org.apache.lucene.store.Directory;
> import org.apache.lucene.store.RAMDirectory;
> import org.apache.lucene.uninverting.UninvertingReader;
> import org.apache.lucene.util.BytesRef;
> public class DimensionalRangeQueryExample {
>   public static void main(String[] args) throws IOException, 
> ParseException {
>   StandardAnalyzer analyzer = new StandardAnalyzer();
>   Directory index = new RAMDirectory();
>   IndexWriterConfig config = new IndexWriterConfig(analyzer);
>   IndexWriter w = new IndexWriter(index, config);
>   addDoc(w, "Lucene in Action", 1);
>   addDoc(w, "Lucene for Dummies", 2);
>   addDoc(w, "Managing Gigabytes", 3);
>   addDoc(w, "The Art of Computer Science", 4);
>   w.commit();
>   w.close();
>   DirectoryReader reader = (DirectoryReader.open(index));
>   Map uninvertingMap = new 
> HashMap<>();
>   uninvertingMap.put("id", UninvertingReader.Type.BINARY);
>   uninvertingMap.put("rating", UninvertingReader.Type.INTEGER);
>   reader = UninvertingReader.wrap(reader, uninvertingMap);
>   IndexSearcher searcher = new IndexSearcher(reader);
>   Query legacyQuery = 
> LegacyNumericRangeQuery.newIntRange("rating_legacy", 1, 4, true, true);
>   Query dimensionalQuery = 
> DimensionalRangeQuery.new1DIntRange("rating", 1, true, 4, true);
>   System.out.println("Legacy query: ");
>   query(legacyQuery, searcher); // works
>   System.out.println("Dimensional query: ");
>   query(dimensionalQuery, searcher); // fails
>   
>   reader.close();
>   }
>   private static 

[jira] [Commented] (LUCENE-6950) DimensionalRangeQuery not working with UninvertingReader

2015-12-28 Thread Robert Muir (JIRA)

[ 
https://issues.apache.org/jira/browse/LUCENE-6950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15073497#comment-15073497
 ] 

Robert Muir commented on LUCENE-6950:
-

Thanks, the patch looks good.

As far as testing this, We could add simple unit tests for what it is doing 
with fieldinfos in TestUninvertingReader. Similar to ones like 
"testSortedSetInteger", but even simpler. just tests that add field to a single 
document, wrap it, then assert stuff about the fieldinfos on the wrapped 
reader. Particularly asserts about docvalues type (which we change if an 
indexed field is configured for uninverting) would be good. We could have lots 
of tests for the logic in there, e.g. one that adds a stored-only field and 
then asserts dvType is still NONE, for example.

> DimensionalRangeQuery not working with UninvertingReader
> 
>
> Key: LUCENE-6950
> URL: https://issues.apache.org/jira/browse/LUCENE-6950
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Ishan Chattopadhyaya
> Attachments: LUCENE-6950.patch, LUCENE-6950.patch, LUCENE-6950.patch
>
>
> As I was trying out dimensional fields for SOLR-8396, I realized that 
> DimensionalRangeQuery is not working with UninvertingReader. 
> In Solr, all directory readers are wrapped by an UninvertingReader and an 
> ExitableDirectoryReader. 
> Here's the error:
> {code}
> Exception in thread "main" java.lang.IllegalArgumentException: field="rating" 
> was indexed with numDims=0 but this query has numDims=1
>   at 
> org.apache.lucene.search.DimensionalRangeQuery$1.scorer(DimensionalRangeQuery.java:186)
>   at org.apache.lucene.search.Weight.bulkScorer(Weight.java:135)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:667)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:474)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:593)
>   at 
> org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:451)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:462)
>   at 
> DimensionalRangeQueryExample.query(DimensionalRangeQueryExample.java:66)
> {code}
> Here's an example program to trigger this failure:
> {code}
> import java.io.IOException;
> import java.util.HashMap;
> import java.util.Map;
> import java.util.Random;
> import org.apache.lucene.analysis.standard.StandardAnalyzer;
> import org.apache.lucene.document.DimensionalIntField;
> import org.apache.lucene.document.Document;
> import org.apache.lucene.document.Field;
> import org.apache.lucene.document.Field.Store;
> import org.apache.lucene.document.LegacyIntField;
> import org.apache.lucene.document.StringField;
> import org.apache.lucene.document.TextField;
> import org.apache.lucene.index.DirectoryReader;
> import org.apache.lucene.index.IndexWriter;
> import org.apache.lucene.index.IndexWriterConfig;
> import org.apache.lucene.index.StoredDocument;
> import org.apache.lucene.queryparser.classic.ParseException;
> import org.apache.lucene.search.DimensionalRangeQuery;
> import org.apache.lucene.search.IndexSearcher;
> import org.apache.lucene.search.LegacyNumericRangeQuery;
> import org.apache.lucene.search.Query;
> import org.apache.lucene.search.ScoreDoc;
> import org.apache.lucene.search.TopDocs;
> import org.apache.lucene.store.Directory;
> import org.apache.lucene.store.RAMDirectory;
> import org.apache.lucene.uninverting.UninvertingReader;
> import org.apache.lucene.util.BytesRef;
> public class DimensionalRangeQueryExample {
>   public static void main(String[] args) throws IOException, 
> ParseException {
>   StandardAnalyzer analyzer = new StandardAnalyzer();
>   Directory index = new RAMDirectory();
>   IndexWriterConfig config = new IndexWriterConfig(analyzer);
>   IndexWriter w = new IndexWriter(index, config);
>   addDoc(w, "Lucene in Action", 1);
>   addDoc(w, "Lucene for Dummies", 2);
>   addDoc(w, "Managing Gigabytes", 3);
>   addDoc(w, "The Art of Computer Science", 4);
>   w.commit();
>   w.close();
>   DirectoryReader reader = (DirectoryReader.open(index));
>   Map uninvertingMap = new 
> HashMap<>();
>   uninvertingMap.put("id", UninvertingReader.Type.BINARY);
>   uninvertingMap.put("rating", UninvertingReader.Type.INTEGER);
>   reader = UninvertingReader.wrap(reader, uninvertingMap);
>   IndexSearcher searcher = new IndexSearcher(reader);
>   Query legacyQuery = 
> LegacyNumericRangeQuery.newIntRange("rating_legacy", 1, 4, true, true);
>   Query dimensionalQuery = 
> DimensionalRangeQuery.new1DIntRange("rating", 1, 

[jira] [Commented] (LUCENE-6950) DimensionalRangeQuery not working with UninvertingReader

2015-12-28 Thread Robert Muir (JIRA)

[ 
https://issues.apache.org/jira/browse/LUCENE-6950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15073468#comment-15073468
 ] 

Robert Muir commented on LUCENE-6950:
-

I don't think we need the conditional or the setter, the bug is that 0's are 
bogusly passed to both in the constructor?

> DimensionalRangeQuery not working with UninvertingReader
> 
>
> Key: LUCENE-6950
> URL: https://issues.apache.org/jira/browse/LUCENE-6950
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Ishan Chattopadhyaya
> Attachments: LUCENE-6950.patch
>
>
> As I was trying out dimensional fields for SOLR-8396, I realized that 
> DimensionalRangeQuery is not working with UninvertingReader. 
> In Solr, all directory readers are wrapped by an UninvertingReader and an 
> ExitableDirectoryReader. 
> Here's the error:
> {code}
> Exception in thread "main" java.lang.IllegalArgumentException: field="rating" 
> was indexed with numDims=0 but this query has numDims=1
>   at 
> org.apache.lucene.search.DimensionalRangeQuery$1.scorer(DimensionalRangeQuery.java:186)
>   at org.apache.lucene.search.Weight.bulkScorer(Weight.java:135)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:667)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:474)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:593)
>   at 
> org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:451)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:462)
>   at 
> DimensionalRangeQueryExample.query(DimensionalRangeQueryExample.java:66)
> {code}
> Here's an example program to trigger this failure:
> {code}
> import java.io.IOException;
> import java.util.HashMap;
> import java.util.Map;
> import java.util.Random;
> import org.apache.lucene.analysis.standard.StandardAnalyzer;
> import org.apache.lucene.document.DimensionalIntField;
> import org.apache.lucene.document.Document;
> import org.apache.lucene.document.Field;
> import org.apache.lucene.document.Field.Store;
> import org.apache.lucene.document.LegacyIntField;
> import org.apache.lucene.document.StringField;
> import org.apache.lucene.document.TextField;
> import org.apache.lucene.index.DirectoryReader;
> import org.apache.lucene.index.IndexWriter;
> import org.apache.lucene.index.IndexWriterConfig;
> import org.apache.lucene.index.StoredDocument;
> import org.apache.lucene.queryparser.classic.ParseException;
> import org.apache.lucene.search.DimensionalRangeQuery;
> import org.apache.lucene.search.IndexSearcher;
> import org.apache.lucene.search.LegacyNumericRangeQuery;
> import org.apache.lucene.search.Query;
> import org.apache.lucene.search.ScoreDoc;
> import org.apache.lucene.search.TopDocs;
> import org.apache.lucene.store.Directory;
> import org.apache.lucene.store.RAMDirectory;
> import org.apache.lucene.uninverting.UninvertingReader;
> import org.apache.lucene.util.BytesRef;
> public class DimensionalRangeQueryExample {
>   public static void main(String[] args) throws IOException, 
> ParseException {
>   StandardAnalyzer analyzer = new StandardAnalyzer();
>   Directory index = new RAMDirectory();
>   IndexWriterConfig config = new IndexWriterConfig(analyzer);
>   IndexWriter w = new IndexWriter(index, config);
>   addDoc(w, "Lucene in Action", 1);
>   addDoc(w, "Lucene for Dummies", 2);
>   addDoc(w, "Managing Gigabytes", 3);
>   addDoc(w, "The Art of Computer Science", 4);
>   w.commit();
>   w.close();
>   DirectoryReader reader = (DirectoryReader.open(index));
>   Map uninvertingMap = new 
> HashMap<>();
>   uninvertingMap.put("id", UninvertingReader.Type.BINARY);
>   uninvertingMap.put("rating", UninvertingReader.Type.INTEGER);
>   reader = UninvertingReader.wrap(reader, uninvertingMap);
>   IndexSearcher searcher = new IndexSearcher(reader);
>   Query legacyQuery = 
> LegacyNumericRangeQuery.newIntRange("rating_legacy", 1, 4, true, true);
>   Query dimensionalQuery = 
> DimensionalRangeQuery.new1DIntRange("rating", 1, true, 4, true);
>   System.out.println("Legacy query: ");
>   query(legacyQuery, searcher); // works
>   System.out.println("Dimensional query: ");
>   query(dimensionalQuery, searcher); // fails
>   
>   reader.close();
>   }
>   private static void query(Query q, IndexSearcher searcher) throws 
> IOException {
>   int hitsPerPage = 10;
>   TopDocs docs = searcher.search(q, hitsPerPage);
>   ScoreDoc[] 

[jira] [Commented] (LUCENE-6950) DimensionalRangeQuery not working with UninvertingReader

2015-12-28 Thread Robert Muir (JIRA)

[ 
https://issues.apache.org/jira/browse/LUCENE-6950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15073485#comment-15073485
 ] 

Robert Muir commented on LUCENE-6950:
-

I am just basing that on MismatchedLeafReader, which is very similar to this 
reader (only it changes a different variable, the field's number):

http://svn.apache.org/repos/asf/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/MismatchedLeafReader.java

It passes all the old stuff and only modifies its one thing. 

> DimensionalRangeQuery not working with UninvertingReader
> 
>
> Key: LUCENE-6950
> URL: https://issues.apache.org/jira/browse/LUCENE-6950
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Ishan Chattopadhyaya
> Attachments: LUCENE-6950.patch, LUCENE-6950.patch
>
>
> As I was trying out dimensional fields for SOLR-8396, I realized that 
> DimensionalRangeQuery is not working with UninvertingReader. 
> In Solr, all directory readers are wrapped by an UninvertingReader and an 
> ExitableDirectoryReader. 
> Here's the error:
> {code}
> Exception in thread "main" java.lang.IllegalArgumentException: field="rating" 
> was indexed with numDims=0 but this query has numDims=1
>   at 
> org.apache.lucene.search.DimensionalRangeQuery$1.scorer(DimensionalRangeQuery.java:186)
>   at org.apache.lucene.search.Weight.bulkScorer(Weight.java:135)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:667)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:474)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:593)
>   at 
> org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:451)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:462)
>   at 
> DimensionalRangeQueryExample.query(DimensionalRangeQueryExample.java:66)
> {code}
> Here's an example program to trigger this failure:
> {code}
> import java.io.IOException;
> import java.util.HashMap;
> import java.util.Map;
> import java.util.Random;
> import org.apache.lucene.analysis.standard.StandardAnalyzer;
> import org.apache.lucene.document.DimensionalIntField;
> import org.apache.lucene.document.Document;
> import org.apache.lucene.document.Field;
> import org.apache.lucene.document.Field.Store;
> import org.apache.lucene.document.LegacyIntField;
> import org.apache.lucene.document.StringField;
> import org.apache.lucene.document.TextField;
> import org.apache.lucene.index.DirectoryReader;
> import org.apache.lucene.index.IndexWriter;
> import org.apache.lucene.index.IndexWriterConfig;
> import org.apache.lucene.index.StoredDocument;
> import org.apache.lucene.queryparser.classic.ParseException;
> import org.apache.lucene.search.DimensionalRangeQuery;
> import org.apache.lucene.search.IndexSearcher;
> import org.apache.lucene.search.LegacyNumericRangeQuery;
> import org.apache.lucene.search.Query;
> import org.apache.lucene.search.ScoreDoc;
> import org.apache.lucene.search.TopDocs;
> import org.apache.lucene.store.Directory;
> import org.apache.lucene.store.RAMDirectory;
> import org.apache.lucene.uninverting.UninvertingReader;
> import org.apache.lucene.util.BytesRef;
> public class DimensionalRangeQueryExample {
>   public static void main(String[] args) throws IOException, 
> ParseException {
>   StandardAnalyzer analyzer = new StandardAnalyzer();
>   Directory index = new RAMDirectory();
>   IndexWriterConfig config = new IndexWriterConfig(analyzer);
>   IndexWriter w = new IndexWriter(index, config);
>   addDoc(w, "Lucene in Action", 1);
>   addDoc(w, "Lucene for Dummies", 2);
>   addDoc(w, "Managing Gigabytes", 3);
>   addDoc(w, "The Art of Computer Science", 4);
>   w.commit();
>   w.close();
>   DirectoryReader reader = (DirectoryReader.open(index));
>   Map uninvertingMap = new 
> HashMap<>();
>   uninvertingMap.put("id", UninvertingReader.Type.BINARY);
>   uninvertingMap.put("rating", UninvertingReader.Type.INTEGER);
>   reader = UninvertingReader.wrap(reader, uninvertingMap);
>   IndexSearcher searcher = new IndexSearcher(reader);
>   Query legacyQuery = 
> LegacyNumericRangeQuery.newIntRange("rating_legacy", 1, 4, true, true);
>   Query dimensionalQuery = 
> DimensionalRangeQuery.new1DIntRange("rating", 1, true, 4, true);
>   System.out.println("Legacy query: ");
>   query(legacyQuery, searcher); // works
>   System.out.println("Dimensional query: ");
>   query(dimensionalQuery, searcher); // fails
>   
>   

[jira] [Commented] (LUCENE-6950) DimensionalRangeQuery not working with UninvertingReader

2015-12-28 Thread Robert Muir (JIRA)

[ 
https://issues.apache.org/jira/browse/LUCENE-6950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15073572#comment-15073572
 ] 

Robert Muir commented on LUCENE-6950:
-

+1, thanks for adding those tests.

> DimensionalRangeQuery not working with UninvertingReader
> 
>
> Key: LUCENE-6950
> URL: https://issues.apache.org/jira/browse/LUCENE-6950
> Project: Lucene - Core
>  Issue Type: Bug
>Reporter: Ishan Chattopadhyaya
> Attachments: LUCENE-6950.patch, LUCENE-6950.patch, LUCENE-6950.patch, 
> LUCENE-6950.patch
>
>
> As I was trying out dimensional fields for SOLR-8396, I realized that 
> DimensionalRangeQuery is not working with UninvertingReader. 
> In Solr, all directory readers are wrapped by an UninvertingReader and an 
> ExitableDirectoryReader. 
> Here's the error:
> {code}
> Exception in thread "main" java.lang.IllegalArgumentException: field="rating" 
> was indexed with numDims=0 but this query has numDims=1
>   at 
> org.apache.lucene.search.DimensionalRangeQuery$1.scorer(DimensionalRangeQuery.java:186)
>   at org.apache.lucene.search.Weight.bulkScorer(Weight.java:135)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:667)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:474)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:593)
>   at 
> org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:451)
>   at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:462)
>   at 
> DimensionalRangeQueryExample.query(DimensionalRangeQueryExample.java:66)
> {code}
> Here's an example program to trigger this failure:
> {code}
> import java.io.IOException;
> import java.util.HashMap;
> import java.util.Map;
> import java.util.Random;
> import org.apache.lucene.analysis.standard.StandardAnalyzer;
> import org.apache.lucene.document.DimensionalIntField;
> import org.apache.lucene.document.Document;
> import org.apache.lucene.document.Field;
> import org.apache.lucene.document.Field.Store;
> import org.apache.lucene.document.LegacyIntField;
> import org.apache.lucene.document.StringField;
> import org.apache.lucene.document.TextField;
> import org.apache.lucene.index.DirectoryReader;
> import org.apache.lucene.index.IndexWriter;
> import org.apache.lucene.index.IndexWriterConfig;
> import org.apache.lucene.index.StoredDocument;
> import org.apache.lucene.queryparser.classic.ParseException;
> import org.apache.lucene.search.DimensionalRangeQuery;
> import org.apache.lucene.search.IndexSearcher;
> import org.apache.lucene.search.LegacyNumericRangeQuery;
> import org.apache.lucene.search.Query;
> import org.apache.lucene.search.ScoreDoc;
> import org.apache.lucene.search.TopDocs;
> import org.apache.lucene.store.Directory;
> import org.apache.lucene.store.RAMDirectory;
> import org.apache.lucene.uninverting.UninvertingReader;
> import org.apache.lucene.util.BytesRef;
> public class DimensionalRangeQueryExample {
>   public static void main(String[] args) throws IOException, 
> ParseException {
>   StandardAnalyzer analyzer = new StandardAnalyzer();
>   Directory index = new RAMDirectory();
>   IndexWriterConfig config = new IndexWriterConfig(analyzer);
>   IndexWriter w = new IndexWriter(index, config);
>   addDoc(w, "Lucene in Action", 1);
>   addDoc(w, "Lucene for Dummies", 2);
>   addDoc(w, "Managing Gigabytes", 3);
>   addDoc(w, "The Art of Computer Science", 4);
>   w.commit();
>   w.close();
>   DirectoryReader reader = (DirectoryReader.open(index));
>   Map uninvertingMap = new 
> HashMap<>();
>   uninvertingMap.put("id", UninvertingReader.Type.BINARY);
>   uninvertingMap.put("rating", UninvertingReader.Type.INTEGER);
>   reader = UninvertingReader.wrap(reader, uninvertingMap);
>   IndexSearcher searcher = new IndexSearcher(reader);
>   Query legacyQuery = 
> LegacyNumericRangeQuery.newIntRange("rating_legacy", 1, 4, true, true);
>   Query dimensionalQuery = 
> DimensionalRangeQuery.new1DIntRange("rating", 1, true, 4, true);
>   System.out.println("Legacy query: ");
>   query(legacyQuery, searcher); // works
>   System.out.println("Dimensional query: ");
>   query(dimensionalQuery, searcher); // fails
>   
>   reader.close();
>   }
>   private static void query(Query q, IndexSearcher searcher) throws 
> IOException {
>   int hitsPerPage = 10;
>   TopDocs docs = searcher.search(q, hitsPerPage);
>   ScoreDoc[] hits = docs.scoreDocs;
>