我看到這個例外在SOLR索引從MongoDB的集合字段時,當我從MongoDB的集合試圖索引數據:獲得一個JSONParseException使用DataImportHandler
Exception while processing: products document : SolrInputDocument(fields: []):org.apache.solr.handler.dataimport.DataImportHandlerException: com.mongodb.util.JSONParseException:
{idStr,name,code,description,price,brand,size,color}
^
at org.apache.solr.handler.dataimport.MongoEntityProcessor.initQuery(MongoEntityProcessor.java:46)
at org.apache.solr.handler.dataimport.MongoEntityProcessor.nextRow(MongoEntityProcessor.java:54)
at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:244)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:476)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:415)
at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:481)
at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:462)
Caused by: com.mongodb.util.JSONParseException:
{idStr,name,code,description,price,brand,size,color}
^
at com.mongodb.util.JSONParser.parseString(JSON.java:387)
以下是在dataimport我的數據源配置文件目錄在我的核心的conf文件夾:
<dataConfig>
<dataSource name="mymongodb" type="MongoDataSource" database="mongodb://*.*.*.*/testdb" />
<document name="data">
<entity
name="products"
processor="MongoEntityProcessor"
query="{idStr,name,code,description,price,brand,size,color}"
collection="products"
datasource="mymongodb"
transformer="MongoMapperTransformer" >
<field column="idstr" name="idstr" mongoField="idStr"/>
<field column="name" name="name" mongoField="name"/>
<field column="code" name="code" mongoField="code"/>
<field column="description" name="description" mongoField="description"/>
<field column="price" name="price" mongoField="price"/>
<field column="brand" name="brand" mongoField="brand"/>
<field column="size" name="size" mongoField="size"/>
<field column="color" name="color" mongoField="color"/>
<entity
name="categories"
processor="MongoEntityProcessor"
query="{'idStr':'${categories.idstr}'}"
collection="categories"
datasource="mymongodb"
transformer="MongoMapperTransformer">
<field column="type" name="type" mongoField="type"/>
</entity>
</entity>
</document>
</dataConfig>
我想加入類別採集領域IDSTR的產品徵收的IDSTR(字段名=> IDSTR),並得到上述領域(名稱,描述,。從產品和類型領域來類別)。
任何意見/解決這個例外將非常讚賞。謝謝!
我不得不使用products.idstr,因爲我想加入類別IDSTR到產品的idstr(字段名稱)(在mongoDB產品集合中它仍然是idStr,所以我使用了mongoField =「idStr」)like:query =「{'idStr':'$ {products.idstr}'}」 現在我看到一個例外: 查詢失敗'{idStr,name,code,description,price,brand,size,color}' com.mongodb.util.JSONParseException: {idStr,名稱,代碼,描述,價格,品牌,尺寸,顏色} ^ \t此語法是否適用於索引產品中的這些字段? 查詢=「{idStr,名稱,代碼,描述,價格,品牌,尺寸,顏色}」 – AbhijitP
OK ......以及'query'是根據堆棧跟蹤的問題。我專注於解決這個問題。你有沒有嘗試在字段周圍放置單引號:'{'idStr','name',...'? – nickdos
是我現在試過: query =「{'idStr','name','code','description','price','brand','size','color'}」Processing while processing:products文檔:SolrInputDocument(fields:[]):org.apache.solr.handler.dataimport.DataImportHandlerException:com.mongodb.util.JSONParseException: {'idStr','name','code','description','price ','brand','size','color'} ^ .......... 引起:com.mongodb.util.JSONParseException: {'idStr','name','code ','描述','價格','品牌','尺寸','顏色'} – AbhijitP