微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javascript Solr (facet) 查询脚本无法正常工作

如何解决Javascript Solr (facet) 查询脚本无法正常工作

我正在使用 solr-client 执行分面 Solr 查询,而我的 javascript solr 查询脚本的结果与 Solr 中列出的内容不匹配。

所以在 Solr 中,我创建的查询如下。这给出了我想要的结果。

enter image description here

我对应的javascript facet查询脚本如下。

exports.list_of_all_car_trims = function(solrPrdCfsClient,callback) {
var carTrimsQuery = solrPrdCfsClient.createquery()
.q('*:*')
.start(0)
.rows(10)
.matchFilter('ManufacturerName','Ford')
.matchFilter('RangeModelWithYears','Fusion (02-12)')
.facet({
    field:'TrimName',mincount:'1'
});
solrPrdCfsClient.search(carTrimsQuery,function(err,obj) {
    if(err) {
        callback(err,null);
    }
    else {
        callback(null,obj.facet_counts.facet_fields);
        console.log(obj.facet_counts.facet_fields);
    }
});
};

但是,我的 javascript 查询脚本的结果与 Solr 的结果不匹配。

我假设我有正确的过滤器('ManufacturerName','Ford' & 'RangeModelWithYears','Fusion (02-12)') ,但可能不在 javascript 查询脚本中的正确位置?

任何帮助将不胜感激。谢谢。

解决方法

我认为这可能是我遗漏的“次要”问题,结果确实如此(尽管这个“次要”问题未能通过我的整个测试!)。

因为我的 ma​​tchFilter 条件包含空格,所以我需要为此添加一些语音标记。

我下面的代码有效。

exports.list_of_all_car_trims = function(solrPrdCfsClient,ManufacturerName,RangeModelWithYears,callback) {
    var carTrimsQuery = solrPrdCfsClient.createQuery()
    .q('*:*')
    .start(0)
    .rows(10)
    .matchFilter('ManufacturerName','Ford')
    .matchFilter('RangeModelWithYears','"Fusion (02-12)"')
    .facet({
        on:true,field:'TrimName',mincount:'1',});
    solrPrdCfsClient.search(carTrimsQuery,function(err,obj) {
        if(err) {
            callback(err,null);
        }
        else {
            callback(null,obj.facet_counts.facet_fields);
        }
    });
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。