lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ruslan Sivak <>
Subject Re: optimizing single document searches
Date Wed, 28 Feb 2007 21:28:55 GMT
karl wettin wrote:
> 28 feb 2007 kl. 00.49 skrev Russ:
>> Thanks, I will try it tommorow... Is it significantly different from 
>> using a standard index on a ramdir?
> A bit different.
> You can also try LUCENE-550. It has about the same speed as 
> contrib/memory but can handle multiple documents and use reader, 
> writer and searcher as any other index.
> --karl

Thank you.  I tried the contrib/memory and it's awesome.  Got my search 
time down to 300ms from 5 seconds. 

I'm still having some performance issues on the set up.  I can probably 
live with them, as I'll be caching these terms, but maybe I can optimize 
it somehow.  It currently takes about 3.5 seconds to set up.  I am 
basically creating 40k SpanNearQueries.  Here is my method that creates 
them.  Is there anything I can improve?

private static Analyzer analyzer=new StandardAnalyzer();
public static SpanNearQuery createSpanNearQuery(String string, int slop, 
boolean inOrder)
        Vector terms=new Vector();
        TokenStream tokenizer=Lucene.analyzer.tokenStream("body", new 
        Token token = null;
        do {

            try {
            } catch (Exception e) {
            if (token!=null)
                terms.add(new SpanTermQuery(new 
        while (token!=null && terms.size()<10);
        SpanTermQuery[] termsArray=new SpanTermQuery[terms.size()];
        for (int i=0;i<terms.size();i++)
            termsArray[i]=(SpanTermQuery) terms.get(i);
        return new SpanNearQuery(termsArray,slop,inOrder);


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message