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

浪子不回头ぞ 提交于 2019-12-03 06:30:42

问题


So I am trying to build something using bloodhound search engine and I noticed that it has these two tokenisers, datum and query.

The initializer code example given in the documentation looks like this:

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

What do these two Tokenizers do?


EDIT

Bloodhound documentation defines these two as follows:

datumTokenizer – A function with the signature (datum) that transforms a datum into an array of string tokens. Required.

queryTokenizer – A function with the signature (query) that transforms a query into an array of string tokens. Required.

It still doesn't explain what is the difference between a Datum and a Query.


回答1:


On Datum and Query

datum are the elements of the index that is searched thru and the query is what is being searched for. If either contain more than one token(s) (or word when whitespace is used), the engine needs some function to split characters on. See more info on why tokenization is needed.



来源:https://stackoverflow.com/questions/30009442/what-is-the-difference-between-datum-and-query-in-bloodhound-search-engine

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!