But i don't want to get the frequency of each term in the doc.
what I want is 1 if the term exists in the doc and 0 if it doesn't. After
this, I want all thes 1s and 0s to be summed and give me a number to use as
a score.
If I set the TF value as 1 or 0, as I described above, I get the right
number, but this number is normalized to 1.0 and smaller numbers.
It is the normalization that I want to avoid.
Thanks again!
Vagelis
markrmiller wrote:
>
> Dont return 1 for tf...just return the tf straight with no
> changes...return freq. For everything else return 1. After that
> OMIT_NORMS should work. If you want to try a custom reader:
>
> public class FakeNormsIndexReader extends FilterIndexReader {
> byte[] ones = SegmentReader.createFakeNorms(maxDoc());
>
> public FakeNormsIndexReader(IndexReader in) {
> super(in);
> }
> public synchronized byte[] norms(String field) throws IOException {
> System.out.println("returning fake norms...");
> return ones;
> }
>
> public synchronized void norms(String field, byte[] result, int
> offset) {
> System.out.println("writing fake norms...");
> System.arraycopy(ones, 0, result, offset, maxDoc());
> }
> }
>
> The beauty of this reader is that you can flip between it and your
> custom similarity and Lucene's default implementations live on the same
> index.
>
> - Mark
>
>
--
View this message in context:
http://www.nabble.com/custom-similarity-based-on-tf-but-greater-than-1.0-tf3037071.html#a8442711
Sent from the Lucene - Java Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]