В чем разница между базой данных и запросом в поисковой системе ищейки?

Итак, я пытаюсь создать что-то с помощью поисковой системы Bloodhound, и я заметил, что у нее есть эти два токенизатора, данные и запрос.

Пример кода инициализатора, приведенный в документации, выглядит следующим образом:

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

Что делают эти два токенизатора?


ИЗМЕНИТЬ

Документация Bloodhound определяет следующие два:

datumTokenizer - функция с сигнатурой (datum), которая преобразует базу данных в массив токенов. Обязательный параметр.

queryTokenizer. Функция с сигнатурой (query), которая преобразует запрос в массив токенов. Обязательный параметр.

Он все еще не объясняет, в чем разница между Datum и Query.

Ответы

Ответ 1

On Datum and Query

datum - это элементы индекса, который выполняется путем поиска, а query - это то, что выполняется. Если либо содержит более одного токена (или слова, когда используется whitespace), движок нуждается в некоторой функции для разделения символов на. Подробнее о зачем нужна токенизация.