lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mishra, Shikhar" <Shikhar.Mis...@telcobuy.com>
Subject RE: DataImport Handler : Transformer Function Eval Failed Error
Date Mon, 05 Nov 2012 19:48:15 GMT
Looks like it will be helpful. I'm going to give it a shot. Thanks, Otis.

Shikhar
________________________________________
From: Otis Gospodnetic [otis.gospodnetic@gmail.com]
Sent: Friday, November 02, 2012 4:36 PM
To: solr-user@lucene.apache.org
Subject: Re: DataImport Handler : Transformer Function Eval Failed Error

Would http://wiki.apache.org/solr/Join do anything for you?

Otis
--
Search Analytics - http://sematext.com/search-analytics/index.html
Performance Monitoring - http://sematext.com/spm/index.html


On Fri, Nov 2, 2012 at 10:06 AM, Mishra, Shikhar <
Shikhar.Mishra@telcobuy.com> wrote:

> We have a scenario where the same products are available from multiple
> vendors at different prices. We want to store these prices along with the
> products in the index (product has many prices), so that we can apply
> dynamic filtering on the prices at the time of search.
>
>
> Thanks,
> Shikhar
>
> -----Original Message-----
> From: Otis Gospodnetic [mailto:otis.gospodnetic@gmail.com]
> Sent: Thursday, November 01, 2012 8:13 PM
> To: solr-user@lucene.apache.org
> Subject: Re: DataImport Handler : Transformer Function Eval Failed Error
>
> Hi,
>
> That looks a little painful... what are you trying to achieve by storing
> JSON in there? Maybe there's a simpler way to get there...
>
> Otis
> --
> Performance Monitoring - http://sematext.com/spm On Nov 1, 2012 6:16 PM,
> "Mishra, Shikhar" <Shikhar.Mishra@telcobuy.com>
> wrote:
>
> > Hi,
> >
> > I'm trying to store a list of JSON objects as stored value for the
> > field prices (see below).
> >
> > I'm getting the following error from the custom transformer function
> > (see the data-config file at the end) of data import handler.
> >
> > Error Message
> >
> > ----------------------------------------------------------------------
> > --------- Caused by:
> > org.apache.solr.handler.dataimport.DataImportHandlerException:
> > 'eval' failed with language: JavaScript and script:
> > function vendorPrices(row)    {
> >
> >                     var wwtCost = row.get('WWT_COST');
> >                     var listPrice = row.get('LIST_PRICE');
> >                     var vendorName = row.get('VENDOR_NAME');
> >
> >                     //Below approach fails
> >                     var prices = [];
> >
> >                     prices.push({'vendor':vendorName});
> >                     prices.push({'wwtCost':wwtCost});
> >                     prices.push({'listPrice':listPrice});
> >
> >                     row.put('prices':prices);
> >
> >                     //Below approach works
> >                     //row.put('prices', '{' + 'vendor:' + vendorName +
> > ', ' + 'wwtCost:' + wwtCost + ', ' + 'listPrice:' + listPrice + '}');
> >                     return row;
> >                 } Processing Document # 1
> >         at
> > org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndT
> > hrow(DataImportHandlerException.java:71)
> >
> > Data Import Handler Configuration File <dataConfig>
> >
> >         <script>
> >         <![CDATA[
> >                 function vendorPrices(row)    {
> >
> >                     var wwtCost = row.get('WWT_COST');
> >                     var listPrice = row.get('LIST_PRICE');
> >                     var vendorName = row.get('VENDOR_NAME');
> >
> >                     //Below approach fails
> >                     var prices = [];
> >
> >                     prices.push({'vendor':vendorName});
> >                     prices.push({'wwtCost':wwtCost});
> >                     prices.push({'listPrice':listPrice});
> >
> >                     row.put('prices':prices);
> >
> >                     //Below approach works
> >                     //row.put('prices', '{' + 'vendor:' + vendorName +
> > ', ' + 'wwtCost:' + wwtCost + ', ' + 'listPrice:' + listPrice + '}');
> >                     return row;
> >                 }
> >         ]]>
> >         </script>
> >
> >     <dataSource driver="oracle.jdbc.driver.OracleDriver"
> > url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=
> > rac-scan.somr.com)(PORT=3465))(CONNECT_DATA=(SERVICE_NAME=
> > ERP_GENERAL.SOMR.ORG)))" user="dummy" password="xxxxxx"/>
> >     <document>
> >         <entity name="item" query="select * from
> > wwt_catalog.wwt_product prod, wwt_catalog.wwt_manufacturer mfg where
> > prod.mfg_id = mfg.mfg_id and prod.mfg_product_number =
> 'CON-CBO2-B22HPF'">
> >                 <field column="PRODUCT_ID" name="id" />
> >             <field column="MFG_PRODUCT_NUMBER" name="name" />
> >             <field column="MFG_PRODUCT_NUMBER" name="nameSort" />
> >             <field column="MFG_NAME" name="manu" />
> >             <field column="MFG_ITEM_NUMBER" name="alphaNameSort" />
> >             <field column="DESCRIPTION" name="features" />
> >             <field column="DESCRIPTION" name="description" />
> >
> >             <entity name="vendor_sources"
> > transformer="script:vendorPrices" query="SELECT PRICE.WWT_COST,
> > PRICE.LIST_PRICE, VEND.VENDOR_NAME, AVAIL.LEAD_TIME,
> > AVAIL.QTY_AVAILABLE FROM wwt_catalog.wwt_product prod,
> > wwt_catalog.wwt_product_pricing price, wwt_catalog.wwt_vendor vend,
> > wwt_catalog.wwt_product_availability avail WHERE  PROD.PRODUCT_ID =
> > price.product_id(+) AND price.vendor_id =
> > vend.vendor_id(+) AND PRICE.PRODUCT_ID = avail.product_id(+) AND
> > PRICE.VENDOR_ID = AVAIL.VENDOR_ID(+) AND prod.PRODUCT_ID =
> > '${item.PRODUCT_ID}'">
> >
> >             </entity>
> >         </entity>
> >
> >     </document>
> > </dataConfig>
> >
> >
> > Are there any syntactic errors in the JavaScript code above? Thanks.
> >
> > Shikhar
> >
> >
> >
>

Mime
View raw message