On Fri, Feb 13, 2009 at 11:04 AM, Erik Hatcher <e...@ehatchersolutions.com> wrote: > What about having the template transformer support ${field:default} syntax?
this is the only usecase for this. this can be easily achieved with a custom Transformer > I'm assuming it doesn't support that currently right? The replace stuff in > the config files does though. > > Erik > > > On Feb 13, 2009, at 8:17 AM, Fergus McMenemie wrote: > >> Paul, >> >> Following up your usenet sussgetion: >> >> <field column="id" template="${jc.fileAbsolutePath}${x.vurl}" >> ignoreMissingVariables="true"/> >> >> and to add more to what I was thinking... >> >> if the field is undefined in the input document, but the schema.xml >> does allow a default value, then TemplateTransformer can use the >> default value. If there is no default value defined in schema.xml >> then it can fail as at present. This would allow "" or any other >> value to be fed into TemplateTransformer, and still enable avoidance >> of the partial strings you referred to. >> >> Regards Fergus. >> >>>> Hello, >>>> >>>> templatetransformer behaves rather ungracefully if one of the >>>> replacement >>>> fields is missing. >>> >>> Looking at TemplateString.java I see that left to itself fillTokens would >>> replace a missing variable with "". It is an extra check in >>> TemplateTransformer >>> that is throwing the warning and stopping the row being returned. >>> Commenting >>> out the check seems to solve my problem. >>> >>> Having done this, an undefined replacement string in TemplateTransformer >>> is replaced with "". However a neater fix would probably involve making >>> use of the default value which can be assigned to a row? in schema.xml. >>> >>>> I am parsing a single XML document into multiple separate solr >>>> documents. >>>> It turns out that none of the source documents fields can be used to >>>> create >>>> a uniqueKey alone. I need to combine two, using template transformer as >>>> follows: >>>> >>>> <entity name="x" >>>> dataSource="myfilereader" >>>> processor="XPathEntityProcessor" >>>> url="${jc.fileAbsolutePath}" >>>> rootEntity="true" >>>> stream="false" >>>> forEach="/record | /record/mediaBlock" >>>> transformer="DateFormatTransformer,TemplateTransformer,RegexTransformer" >>>>> >>>> >>>> <field column="fileAbsolutePath" template="${jc.fileAbsolutePath}" /> >>>> <field column="fileWebPath" >>>> regex="${dataimporter.request.installdir}(.*)" replaceWith="/ford$1" >>>> sourceColName="fileAbsolutePath"/> >>>> <field column="id" >>>> template="${jc.fileAbsolutePath}${x.vurl}" /> >>>> <field column="vurl" >>>> xpath="/record/mediaBlock/mediaObject/@vurl" /> >>>> >>>> The trouble is that vurl is only defined as a child of >>>> "/record/mediaBlock" >>>> so my attempt to create id, the uniqueKey fails for the parent document >>>> "/record" >>>> >>>> I am hacking around with "TemplateTransformer.java" to sort this but was >>>> wondering if there was a good reason for this behavior. >>>> >> >> -- >> >> =============================================================== >> Fergus McMenemie Email:fer...@twig.me.uk >> Techmore Ltd Phone:(UK) 07721 376021 >> >> Unix/Mac/Intranets Analyst Programmer >> =============================================================== > > -- --Noble Paul