Hi all

I've got an Index with a few 100k documents and I want to run a rather complex 
wildcard (incl. leading wildcards) query on it.
The wildcard query takes about 2 seconds to complete.
Now, I want to limit the items on which the wildcard query will be executed.
Let's say, I want to limit the items to those which have the field 
"ProductName" set to "milk" (this query itself runs in less than 5 milliseconds 
and returns about 100 items).
So, I tried different things but everything resulted in having the exact same 
execution time like without this  filter. Even if I run the query multiple 
times in a row with the same Query and Filter items.

Here's what I tried:

-          Adding "+ProductName:milk" to the Query

-          Added FieldCacheTermsFilter("ProductName ", new String[] { "milk" }) 
as Filter

-          Wrapped the Filter in CachingWrapperFilter

-          Used  BooleanQuery filterQuery = new BooleanQuery(); 
filterQuery.add(new TermQuery(new Term("ProductName", "milk ")), 
BooleanClause.Occur.MUST); and wrapped it with a QueryWrapperFilter and also 
tried wrapping it in a FilteredQuery

Nothing improved the searchspeed, it had always the same speed as when he 
parsed thru all documents without any pre-filtering.

Is this pre-filtering different than I thought? Am I doing something wrong? 
Does the index need to be build somehow special for this to work?

Thanks for your help
//Roman

________________________________
Holen Sie die besten Elektronik-Aktionen direkt auf Ihr Facebook-Profil: 
http://www.facebook.com/pages/Preissturz/218831069608

Die besten Elektronik-Aktionen auf Twitter: http://twitter.com/preissturz1

Reply via email to