Bloodhound搜索引擎中“datum”和“query”的区别是什么?

25
所以我正在尝试使用Bloodhound搜索引擎构建一些东西,我注意到它有这两个分词器,datum和query。
文档中给出的初始化代码示例如下:
var engine = new Bloodhound({
  local: ['dog', 'pig', 'moose'],
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  datumTokenizer: Bloodhound.tokenizers.whitespace
});

这两个标记生成器是做什么用的?


编辑

Bloodhound文档将这两个标记生成器定义如下:

datumTokenizer——一个带有签名(datum)的函数,将一个数据转换成一组字符串标记。 必需。

queryTokenizer——一个带有签名(query)的函数,将查询转换成一组字符串标记。 必需。

这仍然无法解释Datum和Query之间的区别。

1个回答

21

关于数据和查询

数据(datum)是索引中被搜索的元素,而查询(query)是被搜索的内容。如果它们中任意一个包含多个单词(或用空格分隔的词语),那么引擎就需要使用一些函数来分割字符。请查看更多有关为什么需要标记化的信息。


在这个上下文中,“index”是什么意思? - user17282
1
就像书后的索引一样,它是被搜索的单词列表。 - tmthydvnprt
那么,如果我的服务器返回“php”、“programming”和“perl”,那么它们三个一起是索引吗? - user17282
@user17282 是的,我使用了一个宽泛的术语,就像是在索引这个计算机科学领域中的某些通用概念。 - tmthydvnprt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接