[Zebralist] problem deleting record with zoom

Giannis Kosmas kosmas at lib.uoc.gr
Wed Jan 17 11:25:13 CET 2007

I had the same "problem" some time ago when I had set up a similar 
You have to search zebra with your Local-Number (090$9), get the 
matching record in xml format and then parse the record and extract 
idzebra/localnumber which is recordIdOpaque required by zebra to update 
or delete via extended services.

It works like a charm!


Paul POULAIN wrote:
> marc a écrit :
>>> Hélas, I still can search & find record 11.
>> Now I am getting a bit confused here: When you say that you can 
>> search record '11' - do you refer to the zebra internal sysno ??
> Nope, I mean I can search (by it's title, that contains "picasso", for 
> example) and get results where the document that has the biblionumber 
> #11 appears.
>> Because this is not the same as an external  recordIdOpaque ..
>> How are the recordId's specified in your config??
>> Can you show me your record '11' here in the mail ??
>> Does it contain the recordID somewhere ??
>> Or are you confusing recordIDOpaque and recordIDNumber ??
> I may, but I don't think so.
> All our records are indexed with a "biblionumber" that is the primary 
> key.
> This biblionumber is stored in 090$9 for me, so it is in the record.
>> When you want to delete/update an existing record,you have two-three 
>> choices:
>> 1) either you do not specify an recordIdOpaque, but just send the 
>> original (or updated) record along, where you make sure that the part 
>> of the record which contains your string bases ID is unaltered,
>> This requires that the recordID setting is found in zebra.cfg, see
>> http://www.indexdata.com/zebra/doc/generic-ids.tkl
> iiuc, that's what we want :
> I have in .cfg : recordId: (bib1,Local-Number)
> Local-Number points to 090$9
> So, it means we must pass the complete record when we want to remove 
> it from zebra ?
> could we just pass a small xml with 090$9 containing biblionumber ? (I 
> ask because we dont have the xml anymore when we try to remove the 
> biblio from zebra : it has been removed by Koha some minuts ago : we 
> have asynchronous updates between koha & zebra)
>> 2) you do externally provide your recordIdOpaque - both under insert, 
>> update and delete. No 'recordID' setting is needed in zebra.cfg
>> This is the use case where you for example have all records in a 
>> relational DB, and mirror them out to Zebra for fast full-text indexing.
> That's not what we to until then, and maybe we should switch to this 
> mode...
> To summarize :
> * we insert/update records without recordIdOpaque, but with recordID 
> setting
> * we try to delete records with recordIdOpaque
> we can't do this : we must either use 1 or the other, not both at the 
> same time.
> Thus, another question about the doc 
> (http://www.indexdata.com/zebra/doc/administration-extended-services.tkl) 
> :
> "The actions recordReplace or recordDelete need specification of the 
> additional recordIdNumber parameter, which must be an existing Zebra 
> internal system ID number, or the optional recordIdOpaque string 
> parameter."
> How to understand this sentence ? isn't it contradictory with 1) ?
>> 3) You let Zebra deal with the inserts as you wish, and use the 
>> 'recordIDNumber'  to point to the Zebra internal sysno (which I 
>> believe is your '11', but I can't know..) for an update or delete. 
>> You are not allowed to use this for an insert, as Zebra generates 
>> it's own ID's.
> We never tried to work with recordIDNumber (and, to say the truth, I 
> don't know how to tell zebra how to give it to me ;-) )
>> Then, there are some other traps to be aware of:
>> 3) you need a general and global indexing filter instruction like
>>  recordType: grs.xml
> I think we have correct things here, as we can add & update the 
> database. I have only a problem for deleting records !

More information about the Zebralist mailing list