血猎犬搜索引擎中的基准和查询有什么区别?

use*_*282 22 typeahead.js bloodhound

所以我试图使用猎犬搜索引擎构建一些东西,我注意到它有这两个标记器,基准和查询.

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

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

这两个Tokenizer做什么?


编辑

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

datumTokenizer - 具有签名(datum)的函数,用于将数据转换为字符串标记数组.需要.

queryTokenizer - 具有签名(查询)的函数,用于将查询转换为字符串标记数组.需要.

它仍然没有解释基准和查询之间的区别.

tmt*_*prt 20

关于基准和查询

datum是在所述索引中的元素检索一个直通 d中的query是什么正在被搜索的.如果要么包含多个标记(whitespace使用时的单词),引擎需要一些功能来分割字符.查看有关为何需要标记化的更多信息.