Hmmm, seems like it should work, but there are two things you might try: 1> just execute the query in Solr. id:1 TO 1000000]. Does that work? 2> I'm really grasping at straws here, but it's *possible* that you need to use the same precisionstep as tint (8?)? There's a constructor that takes precisionStep as a parameter, but the default is 4 in the 3.x code.
I guess it's also possible that you're not really connecting to the server you think you are, but I doubt it as I expect your unit test is creating the index for you, in which case you can't do <1>.... Best Erick On Wed, Dec 14, 2011 at 12:14 PM, Dmitry Kan <dmitry....@gmail.com> wrote: > Maybe you should index your values differently? Here is what Lucene's 2.9 > javadoc says: > > To use this, you must first index the numeric values using > NumericField<http://lucene.apache.org/java/2_9_0/api/all/org/apache/lucene/document/NumericField.html>(expert: > NumericTokenStream<http://lucene.apache.org/java/2_9_0/api/all/org/apache/lucene/analysis/NumericTokenStream.html>). > If your terms are instead textual, you should use > TermRangeQuery<http://lucene.apache.org/java/2_9_0/api/all/org/apache/lucene/search/TermRangeQuery.html>. > NumericRangeFilter<http://lucene.apache.org/java/2_9_0/api/all/org/apache/lucene/search/NumericRangeFilter.html>is > the filter equivalent of this query. > > Dmitry > > On Wed, Dec 14, 2011 at 6:53 PM, Jay Luker <lb...@reallywow.com> wrote: > >> I can't get NumericRangeQuery or TermQuery to work on my integer "id" >> field. I feel like I must be missing something obvious. >> >> I have a test index that has only two documents, id:9076628 and >> id:8003001. The id field is defined like so: >> >> <field name="id" type="tint" indexed="true" stored="true" required="true" >> /> >> >> A MatchAllDocsQuery will return the 2 documents, but any queries I try >> on the id field return no results. For instance, >> >> public void testIdRange() throws IOException { >> Query q = NumericRangeQuery.newIntRange("id", 1, 10000000, true, true); >> System.out.println("query: " + q); >> assertEquals(2, searcher.search(q, 5).totalHits); >> } >> >> public void testIdSearch() throws IOException { >> Query q = new TermQuery(new Term("id", "9076628")); >> System.out.println("query: " + q); >> assertEquals(1, searcher.search(q, 5).totalHits); >> } >> >> Both tests fail with totalHits being 0. This is using solr/lucene >> trunk, but I tried also with 3.2 and got the same results. >> >> What could I be doing wrong here? >> >> Thanks, >> --jay >>