【发布时间】:2016-11-03 06:53:34
【问题描述】:
我正在尝试将 Solr 集成到 Node/Express 应用程序中,而我正在使用 this Node 包进行 Solr 集成。我能够正确查询索引,但是按照包的 GitHub 上的说明,我无法将文档添加到索引中。我不断收到此错误:
[SyntaxError: Unexpected token <]
在 Solr 控制台上,错误更详细一点:
SEVERE: Error processing "legacy" update command:com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '[' (code 91) in prolog; expected '<'
这是我用来尝试使其正常工作的一个小型测试应用程序:
// set variables for environment
var express = require('express');
var path = require('path');
var solr = require('solr-client');
// Create the Express app
var app = express();
module.exports = app;
// Initialize the Vash view engine
app.set("views", path.join( __dirname, "/views") );
app.set("view engine", "vash");
// set routes
app.get('/', function(req, res) {
// Create a client
var client = solr.createClient();
var query = 'q=fencing';
client.get('select', query, function(err, obj) {
if (err) {
console.log(err);
} else {
console.log(obj);
}
});
// Switch on "auto commit", by default `client.autoCommit = false`
client.autoCommit = true;
var docs = [];
for(var i = 0; i <= 10 ; i++){
var doc = {
id : 12345 + i,
title_t : "Title "+ i,
description_t : "Text"+ i + "Alice"
};
docs.push(doc);
}
// Add documents
client.add(docs,function(err,obj){
if(err){
console.log(err);
}else{
console.log(obj);
}
});
res.render('index');
});
// Set server port
app.listen(4000);
console.log('server is running on localhost:4000');
不起作用的特定部分是我尝试在此处将文档添加到索引的位置:
// Add documents
client.add(docs,function(err,obj){
if(err){
console.log(err);
}else{
console.log(obj);
}
});
我的直觉是,这与接收 JSON 时需要 XML 有关,但我终其一生都无法弄清楚如何发送 XML 或使 Solr 能够接受 JSON。有什么建议吗?
【问题讨论】:
-
你使用什么版本的 Solr?
标签: json xml node.js express solr