[ https://issues.apache.org/jira/browse/SOLR-1001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12669714#action_12669714 ]
Shalin Shekhar Mangar commented on SOLR-1001: --------------------------------------------- bq. Is it possible that an equivalent change needs made to other transformers? Yes, I think so. We need to review other transformer and entity processors to make sure we attempt to resolve all attributes. bq. Is the construct ${XXX} a valid part of a regular expression, I dont think so, but.... ? Curly braces are used in regex to specify repetitions but they are not preceded by '$'. I think VariableResolver ignores any variables it is not able to resolve, so we should be fine; we will need to check this though. > using invariant request values from solrconfig.xml inside a data-config.xml > regexp > ---------------------------------------------------------------------------------- > > Key: SOLR-1001 > URL: https://issues.apache.org/jira/browse/SOLR-1001 > Project: Solr > Issue Type: Improvement > Components: contrib - DataImportHandler > Affects Versions: 1.3 > Reporter: Fergus McMenemie > Fix For: 1.4 > > Original Estimate: 48h > Remaining Estimate: 48h > > As per several postings I noted that I can define variables inside an > invariants list section of the DIH handler of solrconfig.xml. I can also > reference these variables within data-config.xml. This works properly, the > solr field "test" is nicely populated. However it is not substituted into my > regex transformer? Here is my data-config.xml which gives a hint of the use > case. > <dataConfig> > <dataSource name="myfilereader" type="FileDataSource"/> > <document> > <entity name="jc" > processor="FileListEntityProcessor" > fileName="^.*\.xml$" > newerThan="'NOW-1000DAYS'" > recursive="true" > rootEntity="false" > dataSource="null" > baseDir="/Volumes/spare/ts/fords/dtd/fordsxml/data"> > <entity name="x" > dataSource="myfilereader" > processor="XPathEntityProcessor" > url="${jc.fileAbsolutePath}" > stream="false" > forEach="/record" > > transformer="DateFormatTransformer,TemplateTransformer,RegexTransformer,HTMLStripTransformer"> > <field column="fileAbsolutePath" template="${jc.fileAbsolutePath}" /> > <field column="fileWebPath" > regex="${dataimporter.request.finstalldir}(.*)" replaceWith="$1" > sourceColName="fileAbsolutePath"/> > <field column="test" > template="${dataimporter.request.finstalldir}" /> > <field column="title" xpath="/record/title" /> > <field column="para" xpath="/record/sect1/para" > stripHTML="true" /> > <field column="date" > xpath="/record/metadata/da...@qualifier='Date']" dateTimeFormat="yyyyMMdd" > /> > </entity> > </entity> > </document> > </dataConfig> > Shalin has pointed out that we are creating the regex Pattern without first > resolving the variable. So we need to call VariableResolver.resolve on the > 'regex' attribute's value before creating the Pattern object. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.