From: Wolfgang M. <wol...@ex...> - 2011-09-15 15:22:26
|
> declare namespace marc = "http://www.loc.gov/MARC21/slim"; > for $record in /marc:collection/marc:record[fn:matches(., "design", 'i')] I'm not sure why you're running out of memory, but it seems like the case insensitive regex expression is causing it (fn:matches with the "i" flag). As Joe suggested, either use a lucene or ngram index for this. Both are case insensitive by default. > let $title := $record/marc:datafield[@tag='245']/marc:subfield/text() The MARC schema makes it difficult to write efficient queries. It's more or less a direct mapping of the old MARC binary format into XML. In the long run, I would recommend a mapping into the LoC's MODS format, which is more "modern" and more friendly to query engines (and query writers). Wolfgang |