使用Bloodhound搜索

时间:2015-12-18 17:09:48

标签: 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: []
});

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

1 个答案:

答案 0 :(得分:4)

开箱即用,Bloodhound tokenizer适用于基本类型的数组。您有“复杂”数据(具有2个属性的对象),因此您必须告诉Bloodhoud使用obj标记生成器进行标记并传递属性名称:

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