В чем разница между базой данных и запросом в поисковой системе ищейки?
Итак, я пытаюсь создать что-то с помощью поисковой системы 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
), движок нуждается в некоторой функции для разделения символов на. Подробнее о зачем нужна токенизация.