【发布时间】:2015-10-28 17:39:37
【问题描述】:
我不清楚如何使用 Bloodhound 中的 dupDetector 参数删除重复项。
我正在使用 v. 0.11.1
从具有如下记录的数据库中提取数据集:
building_name room department
Rooney 123 English
Rooney 456 Chemistry
Rooney 987 Chemistry
Meyer 65 Dog Walking
Flatiron 498 Weaving
我的寻血猎犬电话:
var buildingName = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name', 'room', 'department'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: buildingJson,
dupDetector: function(remoteMatch, localMatch) {
return remoteMatch.building_name === localMatch.building_name;
}
});
我正在寻找的功能是能够搜索鲁尼、456 或英语,结果集仅显示一个 building_name,因为该建筑物名称对于所有三个结果都是相同的。目前,它正在返回列表中的所有三个记录。
这可能吗?
我能找到的关于 dupDetector 的所有信息都是比较远程和预取。我只使用一个数据源,它只有多个同名记录。
【问题讨论】:
-
你在正确的道路上,你试过
return remoteMatch.name === localMatch.name而不是building_name吗? -
什么?没有标记为“名称”的属性
标签: typeahead.js twitter-typeahead bloodhound