X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Frelevance.c;h=08527aec06810451acf631fd1210ed81c791833d;hb=e3d8ed2a9688b50e22e71755d83984659879ecf3;hp=4d5b6e44d29a047f26a9a1fdf90660a39260f116;hpb=b22c4ae2c14eb5d2b991e6233cdea2a9fd7dcf6c;p=pazpar2-moved-to-github.git
diff --git a/src/relevance.c b/src/relevance.c
index 4d5b6e4..08527ae 100644
--- a/src/relevance.c
+++ b/src/relevance.c
@@ -89,37 +89,45 @@ int relevance_snippet(struct relevance *r,
{
int no = 0;
const char *norm_str;
-#if 1
- yaz_log(YLOG_LOG, "relevance_snippet for field=%s content=%s",
- name, words);
-#endif
- pp2_charset_token_first(r->prt, words, 0);
+ int highlight = 0;
+ pp2_charset_token_first(r->prt, words, 0);
while ((norm_str = pp2_charset_token_next(r->prt)))
{
size_t org_start, org_len;
struct word_entry *entries = r->entries;
- int highlight = 0;
int i;
pp2_get_org(r->prt, &org_start, &org_len);
for (; entries; entries = entries->next, i++)
{
- yaz_log(YLOG_LOG, "Compare: %s %s", norm_str, entries->norm_str);
if (*norm_str && !strcmp(norm_str, entries->norm_str))
+ break;
+ }
+ if (entries)
+ {
+ if (!highlight)
+ {
highlight = 1;
+ wrbuf_puts(w_snippet, "");
+ no++;
+ }
+ }
+ else
+ {
+ if (highlight)
+ {
+ highlight = 0;
+ wrbuf_puts(w_snippet, "");
+ }
}
- if (highlight)
- wrbuf_puts(w_snippet, "");
-
wrbuf_xmlputs_n(w_snippet, words + org_start, org_len);
- if (highlight)
- wrbuf_puts(w_snippet, "");
- no += highlight;
}
+ if (highlight)
+ wrbuf_puts(w_snippet, "");
if (no)
{
- yaz_log(YLOG_LOG, "SNIPPET match: %s", wrbuf_cstr(w_snippet));
+ yaz_log(YLOG_DEBUG, "SNIPPET match: %s", wrbuf_cstr(w_snippet));
}
return no;
}