projects
/
pazpar2-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Version 1.6.37
[pazpar2-moved-to-github.git]
/
src
/
relevance.c
diff --git
a/src/relevance.c
b/src/relevance.c
index
4d5b6e4
..
08527ae
100644
(file)
--- 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;
{
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;
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++)
{
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))
if (*norm_str && !strcmp(norm_str, entries->norm_str))
+ break;
+ }
+ if (entries)
+ {
+ if (!highlight)
+ {
highlight = 1;
highlight = 1;
+ wrbuf_puts(w_snippet, "<match>");
+ no++;
+ }
+ }
+ else
+ {
+ if (highlight)
+ {
+ highlight = 0;
+ wrbuf_puts(w_snippet, "</match>");
+ }
}
}
- if (highlight)
- wrbuf_puts(w_snippet, "<match>");
-
wrbuf_xmlputs_n(w_snippet, words + org_start, org_len);
wrbuf_xmlputs_n(w_snippet, words + org_start, org_len);
- if (highlight)
- wrbuf_puts(w_snippet, "</match>");
- no += highlight;
}
}
+ if (highlight)
+ wrbuf_puts(w_snippet, "</match>");
if (no)
{
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;
}
}
return no;
}