X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Frelevance.c;h=a63abaf67bd77d3fdacd753e2979bead96012175;hb=8e26c620fe9f4cd52e0dc3bec5964c89e9a1b2b6;hp=072a894a88dc8e59c0a28c8c23898b0124201ac3;hpb=556f48eff358140d9b68549bf88988133fba786d;p=pazpar2-moved-to-github.git diff --git a/src/relevance.c b/src/relevance.c index 072a894..a63abaf 100644 --- a/src/relevance.c +++ b/src/relevance.c @@ -1,5 +1,5 @@ /* This file is part of Pazpar2. - Copyright (C) 2006-2009 Index Data + Copyright (C) 2006-2010 Index Data Pazpar2 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -77,7 +77,7 @@ static struct word_entry *build_word_entries(pp2_charset_t pct, NMEM nmem, for (; *p; p++) { - pp2_relevance_token_t prt = pp2_relevance_tokenize(pct, *p); + pp2_relevance_token_t prt = pp2_relevance_tokenize(pct, *p, 0); const char *norm_str; while ((norm_str = pp2_relevance_token_next(prt))) @@ -93,7 +93,7 @@ static struct word_entry *build_word_entries(pp2_charset_t pct, NMEM nmem, void relevance_countwords(struct relevance *r, struct record_cluster *cluster, const char *words, int multiplier, const char *name) { - pp2_relevance_token_t prt = pp2_relevance_tokenize(r->pct, words); + pp2_relevance_token_t prt = pp2_relevance_tokenize(r->pct, words, 0); int *mult = cluster->term_frequency_vec_tmp; const char *norm_str; int i, length = 0; @@ -114,7 +114,8 @@ void relevance_countwords(struct relevance *r, struct record_cluster *cluster, for (i = 1; i < r->vec_len; i++) { - cluster->term_frequency_vecf[i] += (double) mult[i] / length; + if (length > 0) /* only add if non-empty */ + cluster->term_frequency_vecf[i] += (double) mult[i] / length; cluster->term_frequency_vec[i] += mult[i]; }