【问题标题】:What is the difference between datum and query in bloodhound search engine?猎犬搜索引擎中的数据和查询有什么区别?
【发布时间】:2015-07-12 14:49:22
【问题描述】:

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

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

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

这两个 Tokenizer 是做什么的?


编辑

Bloodhound documentation对这两个的定义如下:

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

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

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

【问题讨论】:

    标签: typeahead.js bloodhound


    【解决方案1】:

    关于基准和查询

    datum 是索引的元素,通过搜索query 是正在搜索的。如果其中一个包含多个token(s)(或使用whitespace 时的单词),则引擎需要一些function to split characters on。在why tokenization is needed 上查看更多信息。

    【讨论】:

    • 在这种情况下什么是索引?
    • @user17282 就像书后的索引一样,它是正在搜索的单词列表。
    • 所以如果我的服务器返回 "php" "programming" "perl" 那么它们三个一起是索引?
    • @user17282 是的,我用这个词很宽松,就像 some 一般的index
    猜你喜欢
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    相关资源
    最近更新 更多