hi, check Regex Transformer http://wiki.apache.org/solr/DataImportHandler#RegexTransformer
umar On Mon, Jun 14, 2010 at 5:44 PM, <markus.rietz...@rzf.fin-nrw.de> wrote: > hi, > > i have two questions: > > 1) how can i set a default value on an imported field if the > field/column is missing from a SQL query > 2) i had a problem with the dataimporthandler. in one database column > (WebDst) i have a string with a comma/semicolon seperated numbers, like > > 100,200; 300;400, 500 > > there can be a space or not. i want to have a multivalued field in the > end like > > <arr name="__intern"> > <str>100</str> > <str>200</str> > <str>300</str> > <str>400</str> > <str>500</str> > </arr> > > i thought that the javascript/script-transformer could do the trick. i > have a script like > > <script><![CDATA[ > function dst2intern(row) { > var webdst=''; > var count = 0; > webdst = row.get('WebDst'); > var arr = new java.util.ArrayList(); > if (webdst) { > // var dst = webdst.split(/[,; ] */); > var dst = webdst.split(';'); > for (var i=0; i<dst.length; i++) { > arr.add(dst[i]); > count++; > } > if (!count) { > arr.add('0'); > } > row.put('intern', arr); > } else { > arr.add('0'); > row.put('intern', arr); > } > return row; > } > ]]></script> > > in my entity-definition i have > transformer="RegexTransformer,script:dst2intern,TemplateTransformer" > > and then i have a field __intern > > <field name="__intern" column="intern" /> > > i thought that this would work perfect. it seems the split only can > split on ; when comparing a single char. > the regex with > > webdst.split(/[,; ] */); > > doesn't work. i have check it in a simple html-page, there the > javascript split works with the regex. > the solution which works for me is to first use a regex transformer on > WebDst > > <field name="WebDst" regex="[,; ] *" replaceWith=";" column="WebDst" /> > <field name="__intern" column="intern" /> > > and use a simple ";" split in the javascript. > > i am using solr 1.4, java 1.6... > > does anyone know or can tell my, why the javascript split with a regex > doesn't work? > > thank you > > markus > > > >