lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeremy Hanna <jeremy_ha...@mac.com>
Subject Re: Boosting Fields (in index) or Queries
Date Fri, 14 Apr 2006 00:55:37 GMT
Thanks for the tip.  I'm trying to decipher what the explanation  
tells me right now.

Btw, here is the code that I'm currently running:

////////

QueryParser nameParser = new QueryParser("name", analyzer);
QueryParser categoryParser = new QueryParser("category", analyzer);
QueryParser descriptionParser = new QueryParser("description",  
analyzer);
QueryParser featuresParser = new QueryParser("features", analyzer);
QueryParser specificationsParser = new QueryParser("specifications",  
analyzer);
QueryParser skuParser = new QueryParser("sku", analyzer);
QueryParser modelParser = new QueryParser("model", analyzer);

descriptionParser.setDefaultOperator(QueryParser.Operator.AND);
featuresParser.setDefaultOperator(QueryParser.Operator.AND);
specificationsParser.setDefaultOperator(QueryParser.Operator.AND);

BooleanQuery booleanQuery = new BooleanQuery();
Query current = null;

current = categoryParser.parse(queryString);
current.setBoost(20.0f);
booleanQuery.add(current, BooleanClause.Occur.SHOULD);

booleanQuery.add(nameParser.parse(queryString),  
BooleanClause.Occur.SHOULD);
booleanQuery.add(descriptionParser.parse(queryString),  
BooleanClause.Occur.SHOULD);
booleanQuery.add(featuresParser.parse(queryString),  
BooleanClause.Occur.SHOULD);
booleanQuery.add(specificationsParser.parse(queryString),  
BooleanClause.Occur.SHOULD);
booleanQuery.add(skuParser.parse(queryString),  
BooleanClause.Occur.SHOULD);
booleanQuery.add(modelParser.parse(queryString),  
BooleanClause.Occur.SHOULD);


hits = indexSearcher.search(booleanQuery);
hits = indexSearcher.search(booleanQuery, Sort.RELEVANCE);

////////

Looking at the results, the first document in the results should  
hopefully be near the bottom and the Explanation for this document  
has a Description/Details (using the toString() on the Explanation) of:

product of:
   0.0 = sum of:
   0.0 = coord(0/7)

So I'm kind of at a loss as to what's going on.  Am I just doing  
something crazy weird in my code?  I didn't find that many examples  
out there, so I'm kind of winging it according to what I've read in  
the javadocs and what examples I could find.

Thanks,
Jeremy

On Apr 13, 2006, at 6:17 PM, Erik Hatcher wrote:

> The best recommendation is to have a look at the Explanation  
> returned from IndexSearcher.explain() for a specific query and  
> document to trace how things are being scored.  Is it possible  
> you're boosting all documents by the same amount?
>
> 	Erik
>
>
> On Apr 13, 2006, at 6:29 PM, Jeremy Hanna wrote:
>
>> I have a situation where I'm indexing database entries and have  
>> fields such as:
>>
>> name
>> sku
>> model
>> category name
>> description
>> features
>> specifications
>>
>> I am trying to set a priority higher for the name, category name,  
>> and description.
>>
>> I've tried setting the fields' boost values as I've indexed the db  
>> and it seemed to have little or no result.
>>
>> When I tried to do the queries, I started using the  
>> MultiFieldQueryParser but found that those don't have priority or  
>> boost values you can set on any of the Fields at query time.  Then  
>> I tried to have separate query parsers - one for each field.  That  
>> way I could set a boost level for each of the queries created by  
>> those query parsers.  I joined them together with a BooleanQuery  
>> and all of them set to BooleanQuery.Occur.SHOULD.  I ended up  
>> setting the features, specifications, and description to default  
>> to Query.Operator.AND and that helped, but the boost value seems  
>> to do nothing.
>>
>> I try to set the categoryParser's query boost to 4.0f, then 8.0f,  
>> then 20.0f and have tried downgrading other queries, but the  
>> results don't change at all in their order.
>>
>> I am using 1.9.1 and for my database I'm using hibernate to mysql  
>> 5 and ArrayLists with the bag mapping in hibernate.
>>
>> Does anyone have any thoughts or suggestions?
>>
>> Thanks!
>>
>> Jeremy
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message