RE: DataImport Handler : Transformer Function Eval Failed Error

2012-11-05 Thread Mishra, Shikhar
Looks like it will be helpful. I'm going to give it a shot. Thanks, Otis.

Shikhar

From: Otis Gospodnetic [otis.gospodne...@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.mis...@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.gospodne...@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.mis...@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=xx/
  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

RE: DataImport Handler : Transformer Function Eval Failed Error

2012-11-02 Thread Mishra, Shikhar
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.gospodne...@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.mis...@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=xx/
 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





Re: DataImport Handler : Transformer Function Eval Failed Error

2012-11-01 Thread Otis Gospodnetic
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.mis...@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.wrapAndThrow(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=xx/
 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