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

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

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

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

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


ИЗМЕНИТЬ

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

datumTokenizer — функция с подписью (данными), которая преобразует данные в массив токенов строк. Необходимый.

queryTokenizer — функция с подписью (запросом), которая преобразует запрос в массив строковых токенов. Необходимый.

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


person user17282    schedule 03.05.2015    source источник


Ответы (1)


О данных и запросе

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

person tmthydvnprt    schedule 03.05.2015
comment
что такое индекс в этом контексте? - person user17282; 03.05.2015
comment
@user17282 user17282 Подобно указателю в конце книги, это список слов, по которым выполняется поиск. - person tmthydvnprt; 03.05.2015
comment
Итак, если мой сервер возвращает php-программирование Perl, то все три из них вместе являются индексом? - person user17282; 03.05.2015
comment
@ user17282 да, я использовал этот термин вольно, как в некоторых общих index . - person tmthydvnprt; 03.05.2015