title: What is the difference between datum and query in bloodhound search engine?
body: <p>So I am trying to build something using bloodhound search engine and I noticed that it has these two tokenisers, datum and query. </p>
  
  <p>The initializer code example given in the documentation looks like this:</p>
  
  <pre><code>var engine = new Bloodhound({
    local: ['dog', 'pig', 'moose'],
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    datumTokenizer: Bloodhound.tokenizers.whitespace
  });
  </code></pre>
  
  <p>What do these two Tokenizers do?</p>
  
  <p><br>
  <strong>EDIT</strong></p>
  
  <p><a href="https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md">Bloodhound documentation</a> defines these two as follows:</p>
  
  <p><strong>datumTokenizer</strong> – A function with the signature (datum) that transforms a datum into an array of string tokens. Required.</p>
  
  <p><strong>queryTokenizer</strong> – A function with the signature (query) that transforms a query into an array of string tokens. Required.</p>
  
  <p>It still doesn't explain what is the difference between a Datum and a Query.</p>