Hmmm. Just gave that a go! No luck
But how many layers of defaults do we need?


Rgds Fergus

>What about having the template transformer support ${field:default}  
>syntax?  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
>> ===============================================================

-- 

===============================================================
Fergus McMenemie               Email:fer...@twig.me.uk
Techmore Ltd                   Phone:(UK) 07721 376021

Unix/Mac/Intranets             Analyst Programmer
===============================================================

Reply via email to