lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter W. <pe...@marketingbrokers.com>
Subject search with RangeFilter.Less
Date Wed, 28 Jun 2006 20:00:29 GMT
Hello,

I'm trying to do a numerical search for a property in Lucene using  
RangeFilter.Less
without using both RangeQuery and test cases.

Here's the code that I expect would return one hit :
(adapted from Youngho)

import org.apache.lucene.analysis.SimpleAnalyzer;
import org.apache.lucene.document.*;
import org.apache.lucene.index.*;
import org.apache.lucene.search.*;
import org.apache.lucene.store.*;
import java.io.IOException;
import java.io.Serializable;
import java.util.*;

public class doesRFLwork
    {
    private static Directory ramdir;
    public static void main(String[] args)
       {
       try
          {
          setdocs();
          runfilterquery();
          }
       catch(Exception e)
          {
          System.out.println(e);
          }
       } // main

    protected static void setdocs() throws Exception
       {
       ramdir=new RAMDirectory();
       adddocs();
       }

    public static void runfilterquery() throws Exception
       {
       IndexSearcher searcher=new IndexSearcher(ramdir);
       Filter  
filter=RangeFilter.Less("num",NumberTools.longToString(10L));

       Term term=new Term("id","property");
       Query query=new TermQuery(term);

       FilteredQuery fq = new FilteredQuery(query,filter);

       Hits hits = searcher.search(fq);
       System.out.println("property found,less than 10: "  
+hits.length());
       }

    private static void adddocs() throws IOException
       {
       IndexWriter writer=new IndexWriter(ramdir,new SimpleAnalyzer(),  
true);
       Document doc=new Document();
       doc.add( new  
Field("id","property",Field.Store.YES,Field.Index.TOKENIZED) );
       doc.add( new  
Field("num",NumberTools.longToString(5L),Field.Store.YES,Field.Index.TOK 
ENIZED) );

       writer.addDocument(doc);
       writer.optimize();
       writer.close();
       }
    }

Since five is less than ten, why doesn't it work?

Thanks.

Peter W.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message