bloodhound 搜索引擎中的数据和查询有什么区别?

What is the difference between datum and query in bloodhound search engine?

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

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

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

这两个分词器是做什么的?


编辑

Bloodhound documentation定义这两个如下:

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

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

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

关于数据和查询

datum 通过 搜索的索引元素 query 搜索的内容。如果其中一个包含多个 token(s)(或使用 whitespace 时的词),引擎需要一些 function to split characters on. See more info on why tokenization is needed.