25

所以我正在尝试使用 Bloodhound 搜索引擎构建一些东西,我注意到它有这两个标记器,数据和查询。

文档中给出的初始化代码示例如下所示:

var engine = new Bloodhound({
  local: ['dog', 'pig', 'moose'],
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  datumTokenizer: Bloodhound.tokenizers.whitespace
});

这两个 Tokenizer 是做什么的?


编辑

Bloodhound 文档将这两个定义如下:

datumTokenizer – 具有将数据转换为字符串标记数组的签名 (datum) 的函数。必需的。

queryTokenizer – 带有签名(查询)的函数,可将查询转换为字符串标记数组。必需的。

它仍然没有解释 Datum 和 Query 之间的区别。

4

1 回答 1

21

关于基准和查询

datum通过搜索的索引的元素,并且query是正在搜索的内容。如果其中一个包含多个标记(或使用时的单词whitespace),则引擎需要一些函数来拆分. 查看更多关于为什么需要标记化的信息。

于 2015-05-03T03:45:49.980 回答