Jonathan,
Using the as-yet-to-be-documented record editing capabilities of
SolrMarc I think you can you what you want.
create a file named editor338.properties in the same directory and
SolrMarc.jar that contains:
338=true
338_0=and(subfieldmatches("a", "online
resource"),not(subfieldmatches("b","cr")))=>both(deletefield(),insertfield("338
$aonline resource$bcr"))
and run SolrMarc as a filter:
cat my_records.mrc |
java -Dsolrmarc.main.class="org.solrmarc.marc.MarcPrinter"
-Dmarc.reader.remap=editor338.properties -jar SolrMarc.jar translate >
my_edited_records.mrc
or you can even just add:
marc.reader.remap=editor338.properties
to your config.properties file, and the editing will be done as the
records are read in for indexing.
-Bob
On 6/24/2014 12:39 PM, Jonathan Rochkind wrote:
> Hi code4libbers,
>
> I don't have much experience with MarcEdit, I'm hoping someone else
> does, especially with creating automated MarcEdit "tasks", and can
> advise:
>
> Would it be possible to create a MarcEdit task that:
>
> => IF there is 338 field with subfield $a "online resource", THEN
> erase all existing subfield $b's in that field, and add a single
> subfield $b "cr".
>
>
> We have records loaded from certain sources that have inconsistent
> 338$a and $b, where the $a is the reliable one. I'm curious if I can
> send records from these sources through a MarcEdit Task to correct
> this known pattern of error.
>
> Anyone know if this is possible in a MarcEdit task? And if you could
> supply some hints to a complete newbie to MarcEdit on how to do it,
> that would be quite kind of you!
>
> Jonathan
|