使用Nodejs和石灰石查询时,Sphinx不会返回匹配项

时间:2012-03-06 11:18:09

标签: node.js sphinx

我一直在尝试使用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个值,但在上面的结果中匹配为空。 请帮忙。

2 个答案:

答案 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