我一直在尝试使用Nodejs和limestone来查询sphinx文档。但它只返回sphinx属性和字段
我的文件内容如下,
var limestone = require("limestone").SphinxClient();
limestone.connect("192.168.1.113:3312", function(err) {
if (!err) {
limestone.query({query: "test", maxmatches:1, indexes:"phoneindex"}, function(err, answer){
if (!err) {
console.log("Extended search for 'test' yielded " + answer.match_count + " results: " + JSON.stringify(answer));
limestone.disconnect();
}else{
console.log("Connected ERR: "+err);
}
});
}
});
输出如下,
Extended search for 'test' yielded 0 results: {"status":0,"num_fields":2,"fields":[{"name":"name"},{"name":"phone"}],"attributes":[],"matches":[],"num_attrs":0,"match_count":0,"id64":0,"total":0,"total_found":0,"msecs":0,"words_count":1,"words":{"test":{"docs":0,"hits":0}}}
phoneindex有4个值,但在上面的结果中匹配为空。 请帮忙。
答案 0 :(得分:1)
为什么要指定
maxmatches:1
?很确定会导致问题。
但是,除此之外,您是否尝试过node / limestone之外的查询。例如,使用“搜索”命令行工具。
您的索引是否正确构建。 'indextool --dumpheader'是否显示有效数据?
在sphinx安装的api /文件夹中使用test.pl/.php/.py怎么样?
另一个检查区域是狮身人面像查询日志。 (如果已启用)
...使用这些工具,将有助于缩小原因。
答案 1 :(得分:0)
终于得到了这个问题。
索引中未启用通配符。但是limestone.js,查询“测试”一词。所以node.js&石灰石对我没有任何影响。所以我补充道
(不正确的方式)query["query"] = "";
行号:284 in limestone.js。现在它对我来说很好。
感谢好的模块 limestone