if (zebra_maps_read_file(reg->zebra_maps, index_fname) != ZEBRA_OK)
ret = ZEBRA_FAIL;
}
+ else
+ {
+ zebra_maps_define_default_sort(reg->zebra_maps);
+ }
}
if (!(reg->records = rec_open(reg->bfs, rw, record_compression)))
}
else
{
- for (i = 0; i<num_recs; i++)
+ WRBUF addinfo_w = wrbuf_alloc();
+ for (i = 0; i < num_recs; i++)
{
+ recs[i].errCode = 0;
+ recs[i].errString = 0;
+ recs[i].format = 0;
+ recs[i].len = 0;
+ recs[i].buf = 0;
+ recs[i].base = 0;
+ recs[i].sysno = poset[i].sysno;
if (poset[i].term)
{
- recs[i].errCode = 0;
recs[i].format = yaz_oid_recsyn_sutrs;
recs[i].len = strlen(poset[i].term);
recs[i].buf = poset[i].term;
zebra_snippets_hit_vector(zh, setname, poset[i].sysno,
hit_snippet);
#endif
+ wrbuf_rewind(addinfo_w);
recs[i].errCode =
zebra_record_fetch(zh, setname,
poset[i].sysno, poset[i].score,
stream, input_format, comp,
&recs[i].format, &buf, &len,
- &recs[i].base, &recs[i].errString);
+ &recs[i].base, addinfo_w);
+ if (wrbuf_len(addinfo_w))
+ recs[i].errString =
+ odr_strdup(stream, wrbuf_cstr(addinfo_w));
recs[i].len = len;
if (len > 0)
{
else
recs[i].buf = buf;
recs[i].score = poset[i].score;
- recs[i].sysno = poset[i].sysno;
zebra_snippets_destroy(hit_snippet);
}
else
ret = ZEBRA_FAIL;
break;
}
- recs[i].buf = 0; /* no record and no error issued */
- recs[i].len = 0;
- recs[i].errCode = 0;
- recs[i].format = 0;
- recs[i].sysno = 0;
}
}
zebra_meta_records_destroy(zh, poset, num_recs);
+ wrbuf_destroy(addinfo_w);
}
zebra_end_read(zh);
xfree(pos_array);
return 0;
}
-static int delete_SU_handle(void *handle, int ord)
+static int delete_SU_handle(void *handle, int ord,
+ const char *index_type, const char *string_index,
+ zinfo_index_category_t cat)
{
ZebraHandle zh = (ZebraHandle) handle;
char ord_buf[20];
int ord_len;
-
+#if 0
+ const char *index_type = 0;
+ const char *db = 0;
+ const char *string_index = 0;
+ zebraExplain_lookup_ord(zh->reg->zei, ord,
+ &index_type, &db, &string_index);
+ yaz_log(YLOG_LOG,
+ "delete_SU_handle:: ord=%d index_type=%s db=%s string_index=%s",
+ ord, index_type, db, string_index);
+#endif
+ yaz_log(YLOG_LOG, "ord=%d index_type=%s index=%s cat=%d", ord,
+ index_type, string_index, (int) cat);
ord_len = key_SU_encode(ord, ord_buf);
ord_buf[ord_len] = '\0';