如何解决Javascript Solr (facet) 查询脚本无法正常工作
我正在使用 solr-client 执行分面 Solr 查询,而我的 javascript solr 查询脚本的结果与 Solr 中列出的内容不匹配。
所以在 Solr 中,我创建的查询如下。这给出了我想要的结果。
我对应的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 查询脚本中的正确位置?
任何帮助将不胜感激。谢谢。
解决方法
我认为这可能是我遗漏的“次要”问题,结果确实如此(尽管这个“次要”问题未能通过我的整个测试!)。
因为我的 matchFilter 条件包含空格,所以我需要为此添加一些语音标记。
我下面的代码有效。
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 举报,一经查实,本站将立刻删除。