lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From karl wettin <ka...@snigel.net>
Subject Re: problems calculating norms
Date Thu, 11 May 2006 18:51:55 GMT
On Thu, 2006-05-11 at 11:15 -0700, Chris Hostetter wrote:
> I'm really confused by your example ... 

Sorry. I just pasted it in to show that I do the same kind of
calculation as the DocumentWriter.

> I'm assuming eField is a Map.Entry, and eField.getKey() is returning a
> FieldInfo (allthough i'm not sure why there's no explicit cast in your
> code) ... 

Java 1.5

> but what is the return type of "eField.getValue()" ?

Map<FieldSetting, LinkedList<Token>> where FieldSetting is my way of
normalizing the settings of Field.name per Document.

> Without understanding what that object is, i can only speculate at what
> .size() is returning ... but i can speculate two possible reasns why
> you would have a very small discrepency...
> 
> 1) perhaps you have an off by one error, and eField.getValue().size() is
> returning one less then the actual number of terms?
> 
> 2) if the problem doesn't happen with all docs, perhaps you are forgetting
> to take into account the maxFieldLength DocumentWriter uses?

I'm afraid it's none of above.

> 
> 
> 
> 
> : Date: Thu, 11 May 2006 17:43:30 +0200
> : From: karl wettin <kalle@snigel.net>
> : Reply-To: java-dev@lucene.apache.org
> : To: java-dev@lucene.apache.org
> : Subject: problems calculating norms
> :
> : The my norm values does not equal the one of the norms set for the same
> : document and field in a Directory. I don't know why. They only differ
> : very little, but enough to change the order of very similar hits.
> :
> : I only add one value to the field, so there is no mean division and
> : things going on in my code. Could that be it?
> :
> : This is what I do:
> :
> : if(eField.getKey().isIndexed && !eField.getKey().omitNorms) {
> :   float boost = eDocument.getKey().getBoost();
> :   boost *= eField.getKey().boost;
> :   float norm = eField.getKey().boost *
> : similarity.lengthNorm(eField.getKey().fieldName,
> : eField.getValue().size());
> :   byte encoded = Similarity.encodeNorm(norm);
> :
> : boostByFieldNameAndDocumentNumber.get(eField.getKey().fieldName)[eDocument.getKey().getDocumentNumber()]
= encoded;
> : }
> :
> :
> : Any ideas?
> :
> :
> : ---------------------------------------------------------------------
> : To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
> : For additional commands, e-mail: java-dev-help@lucene.apache.org
> :
> 
> 
> 
> -Hoss
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-dev-help@lucene.apache.org
> 
> 


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


Mime
View raw message