-/* $Id: safari.c,v 1.8 2007-04-25 08:18:01 adam Exp $
+/* $Id: safari.c,v 1.9 2007-04-25 09:38:21 adam Exp $
Copyright (C) 1995-2007
Index Data ApS
return RECCTRL_EXTRACT_EOF;
sscanf(line, "%255s", p->match_criteria);
- recWord.index_type = '0';
while (fi_gets(fi, line, sizeof(line)-1))
{
int nor = 0;
char field[40];
- char *cp;
+ const char *cp = line;
#if 0
yaz_log(YLOG_LOG, "safari line: %s", line);
#endif
+ if (*cp >= '0' && *cp <= '9')
+ recWord.index_type = '0'; /* the default is 0 (raw) */
+ else
+ recWord.index_type = *cp++; /* type given */
+
if (tinfo->segments)
{
- if (sscanf(line, ZINT_FORMAT " " ZINT_FORMAT " " ZINT_FORMAT
+ if (sscanf(cp, ZINT_FORMAT " " ZINT_FORMAT " " ZINT_FORMAT
ZINT_FORMAT " %39s %n",
&recWord.record_id, &recWord.section_id,
&recWord.segment,
}
else
{
- if (sscanf(line, ZINT_FORMAT " " ZINT_FORMAT " " ZINT_FORMAT " %39s %n",
+ if (sscanf(cp, ZINT_FORMAT " " ZINT_FORMAT " " ZINT_FORMAT " %39s %n",
&recWord.record_id, &recWord.section_id, &recWord.seqno,
field, &nor) < 4)
{
return RECCTRL_EXTRACT_ERROR_GENERIC;
}
}
- for (cp = line + nor; *cp == ' '; cp++)
+ for (cp = cp + nor; *cp == ' '; cp++)
;
recWord.index_name = field;
recWord.term_buf = cp;
-/* $Id: safari1.c,v 1.15 2007-01-15 15:10:19 adam Exp $
+/* $Id: safari1.c,v 1.16 2007-04-25 09:38:21 adam Exp $
Copyright (C) 1995-2007
Index Data ApS
"00024339 125061 0 1 any the\n"
"00024339 125061 0 2 any gamle\n"
"00024339 125061 0 3 any mand\n"
+ "w 00024339 125661 0 4 any Hello\n"
,
"1001\n" /* separate record */
"00024340 125062 0 1 any the\n"
YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @and the gamle", 1));
YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @and the of", 0));
+ YAZ_CHECK(tl_query(zh, "@attr 1=any hello", 1));
+
/* verify that we get these records exactly */
ids[0] = 24338;
ids[1] = 24339;