On Fri, Feb 13, 2009 at 10:17 AM, Fergus McMenemie <fer...@twig.me.uk> 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 it is not really useful. Solr would automatically fill up with default values. > 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