The zebramaps implements index_types functionality.
[idzebra-moved-to-github.git] / index / zebraapi.c
index b8f3936..676846f 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: zebraapi.c,v 1.259 2007-08-28 21:40:57 adam Exp $
+/* $Id: zebraapi.c,v 1.264 2007-11-06 10:29:59 adam Exp $
    Copyright (C) 1995-2007
    Index Data ApS
 
@@ -419,7 +419,6 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name,
     if (!strcmp (recordCompression, "bzip2"))
        record_compression = REC_COMPRESS_BZIP2;
 
-    if (1)
     {
        const char *index_fname = res_get_def(res, "index", "default.idx");
        if (index_fname && *index_fname)
@@ -1226,7 +1225,6 @@ ZEBRA_RES zebra_scan(ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt,
                     const char *setname)
 {
     ZEBRA_RES res;
-    RSET limit_rset = 0;
 
     ZEBRA_CHECK_HANDLE(zh);
 
@@ -1244,21 +1242,10 @@ ZEBRA_RES zebra_scan(ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt,
        *num_entries = 0;
        return ZEBRA_FAIL;
     }
-    if (setname)
-    {
-       limit_rset = resultSetRef(zh, setname);
-       if (!limit_rset)
-       {
-           zebra_setError(zh, 
-                          YAZ_BIB1_SPECIFIED_RESULT_SET_DOES_NOT_EXIST,
-                          setname);
-           zebra_end_read (zh);
-           return ZEBRA_FAIL;
-       }
-    }
+
     res = rpn_scan(zh, stream, zapt, attributeset,
                    zh->num_basenames, zh->basenames, position,
-                   num_entries, entries, is_partial, limit_rset);
+                   num_entries, entries, is_partial, setname);
     zebra_end_read(zh);
     return res;
 }
@@ -1526,11 +1513,12 @@ ZEBRA_RES zebra_create_database (ZebraHandle zh, const char *db)
     return zebra_end_trans (zh);
 }
 
-int zebra_string_norm(ZebraHandle zh, unsigned reg_id,
+int zebra_string_norm(ZebraHandle zh, const char *index_type,
                      const char *input_str, int input_len,
                      char *output_str, int output_len)
 {
     WRBUF wrbuf;
+    zebra_map_t zm = zebra_map_get(zh->reg->zebra_maps, index_type);
     ASSERTZH;
     assert(input_str);
     assert(output_str);
@@ -1538,8 +1526,7 @@ int zebra_string_norm(ZebraHandle zh, unsigned reg_id,
 
     if (!zh->reg->zebra_maps)
        return -1;
-    wrbuf = zebra_replace(zh->reg->zebra_maps, reg_id, "",
-                         input_str, input_len);
+    wrbuf = zebra_replace(zm, "", input_str, input_len);
     if (!wrbuf)
        return -2;
     if (wrbuf_len(wrbuf) >= output_len)