[Zebralist] problem deleting record with zoom

Paul POULAIN paul.poulain at free.fr
Wed Jan 17 11:03:14 CET 2007

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 !
Paul POULAIN et Henri Damien LAURENT
Consultants indépendants
en logiciels libres et bibliothéconomie (http://www.koha-fr.org)
Tel : 04 91 31 45 19

More information about the Zebralist mailing list