You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Ma...@rzf.fin-nrw.de on 2010/06/14 14:14:56 UTC
dataimporthandler and javascript transformer and default values
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
Re: dataimporthandler and javascript transformer and default values
Posted by Geek Gamer <ge...@gmail.com>.
hi,
check Regex Transformer
http://wiki.apache.org/solr/DataImportHandler#RegexTransformer
umar
On Mon, Jun 14, 2010 at 5:44 PM, <Ma...@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
>
>
>
>