それで、私はブラッドハウンド検索エンジンを使用して何かを構築しようとしていますが、データムとクエリの2つのトークナイザーがあることに気付きました。
ドキュメントに記載されている初期化コードの例は次のとおりです。
var engine = new Bloodhound({
local: ['dog', 'pig', 'moose'],
queryTokenizer: Bloodhound.tokenizers.whitespace,
datumTokenizer: Bloodhound.tokenizers.whitespace
});
これら2つのTokenizerは何をしますか?
[〜#〜]編集[〜#〜]
Bloodhoundのドキュメント は、これら2つを次のように定義します。
datumTokenizer–データムを文字列トークンの配列に変換するシグネチャ(データム)を持つ関数。必須。
queryTokenizer–クエリを文字列トークンの配列に変換する署名(クエリ)を持つ関数。必須。
それでも、データとクエリの違いは説明されていません。
datum
はインデックスの要素であり、から dで検索されます。query
は、で検索されているです。複数のトークンが含まれている場合(またはwhitespace
が使用されている場合はWord)、エンジンにはいくつかの 文字を分割する関数 が必要です。 トークン化が必要な理由 の詳細を参照してください。