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

Reply via email to