bloodhound - 将搜索与 Bloodhound 结合使用

标签 bloodhound

我试图找出 Bloodhound 的工作原理(无需提前输入)。

var engine = new Bloodhound({
    local: [{ id: 1, name: 'dog' }, { id: 2, name: 'pig' }],
    identify: function(obj) { return obj.id; },
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    datumTokenizer: Bloodhound.tokenizers.whitespace
});

engine.search('do', function(datums) {
    console.log(datums); // results: []
});

在这个非常基本的示例中,为什么我的搜索没有返回我的第一项?我做错了什么?

最佳答案

开箱即用,Bloodhound 分词器适用于基本类型的数组。你有“复杂”的数据(一个有 2 个属性的对象),所以你必须告诉 Bloodhoud 使用 obj 标记什么。标记器和传递属性名称:

datumTokenizer: Bloodhound.tokenizers.obj.whitespace("id", "name"),

关于bloodhound - 将搜索与 Bloodhound 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34360616/

相关文章:

jquery - 将 Typeahead 与 Google 自定义搜索引擎结合使用

jquery - 试图捕获悬停在 tt-suggestion 上

javascript - 暂时关闭预先输入自动完成功能

javascript - Typeahead 不敏感的重音

javascript - 将 typeahead 从 0.9.3 升级到 0.10.5 远程

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

jquery - Bloodhound 远程查询有效,但没有任何建议

twitter-bootstrap - 如何使用预输入通配符

javascript - 猎犬.js : Transform the data returned by a remote source?