Hi,
I was getting very bad results for some queries & after a little research &
a lot of searching on the mailing list, I have the following information.
Could someone please help me figure out whats wrong.
Exact phrase matches in fields with higher boost were ranking lower than
some non exact matches in 1 other field.
(I change th userQuery => "userQuery"^4 userQuery .. any other ideas for
ranking exact matches higher ?)
The symptom:
Very high fieldNorm for field A.(explain output pasted below) The boost i am
applying to the troublesome field is 3.5 & the max boost applied per doc is
1.8
Given that information, the very high fieldNorm is very surprising to me.
Based on what I read, FieldNorm = 1 / sqrt(sum of terms) , possibly
multiplied by field boost values.
My suspicions:
There may be something wrong with the way I add this field:
fieldName = "A';
fieldConfig = getConfig(fieldName);
for (Collection of values){
Field thisField = new Field(fieldName, value, fieldConfig.STORED,
fieldConfig.INDEXED);
thisField.setBoost(fieldConfig);
doc.add(thisField);
}
which should basically lead to the "values" being appended,
Am i making a mistake in the way I am adding fields ?
The results which are showing up on top (having very high fieldnorm) have a
lot of "values".
Thanks a ton for any guidance you can provide.
-mek
Explain output:
[java] 931523.7 = product of:
[java] 6520665.5 = product of:
[java] 1.9561996E7 = weight(A:william in 2994602), product of:
[java] 4.5579695E-4 = queryWeight(A:william), product of:
[java] 5.7101016 = idf(docFreq=62092)
[java] 7.9822916E-5 = queryNorm
[java] 4.2918224E10 = fieldWeight(A:william in 2994602), product
of:
[java] 1.0 = tf(termFreq(A:william)=1)
[java] 5.7101016 = idf(docFreq=62092)
[java] 7.5161928E9 = fieldNorm(field=A, doc=2994602)
[java] 0.33333334 = coord(1/3)
[java] 0.14285715 = coord(1/7)