gpt4 book ai didi

typeahead.js - 提前输入/猎犬 : Removing duplicates from local

转载 作者:行者123 更新时间:2023-12-02 04:45:33 25 4
gpt4 key购买 nike

我不清楚如何使用 Bloodhound 中的 dupDetector 参数删除重复项。

我正在使用 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;
}
});

我正在寻找的功能是能够搜索 Rooney、456 或 English,结果集只显示一个 building_name,因为所有三个结果的建筑物名称都是相同的。目前,它正在返回列表中的所有三个记录。

这可能吗?

我能找到的关于 dupDetector 的所有信息都是比较远程和预取。我只使用一个数据源,它只有多个同名记录。

最佳答案

不幸的是,dupDetector 仅适用于远程或预取数据源。

本地数据源存在问题,因此您的 dupDetector 无法正常工作。它永远不会被调用。尝试使用 console.log 来查看。

https://github.com/twitter/typeahead.js/issues/606#issuecomment-51221195

看起来你无论如何都是从 JSON 加载的,所以为什么不把它弹出到你的“本地”服务器上并改为“预取”它。否则看起来您将不得不手动完成。

var buildingName = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name', 'room', 'department'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: ../buildingJson.json,
dupDetector: function(remoteMatch, localMatch) {
return remoteMatch.building_name === localMatch.building_name;
}
});

关于typeahead.js - 提前输入/猎犬 : Removing duplicates from local,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33397907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com