【JavaScript】Fuse.jsで曖昧検索を実装する
こんにちは、フリーランスエンジニアの太田雅昭です。
曖昧検索事情
昨今のAIの発達により、ユーザーは曖昧検索が当たり前という意識にシフトしつつあると思います。曖昧検索は、今後のデフォルトになるかもしれません。
JavaScriptで実装
今のところ、簡単に実装するにはFuse.jsを使用すると良さそうです。少ない件数なら、必要なデータをフロントに持ってきて、そこで処理できそうです。
npm i fuse.js
import Fuse from 'fuse.js';
const data = [
{ name: 'ディー・エヌ・エー' },
{ name: 'ディーエヌアエー' },
{ name: 'ディーエヌエー' },
{ name: 'DNA' },
];
const fuse = new Fuse(data, { keys: ['name'], threshold: 1.0 });
console.log(fuse.search('ディーエヌエー')); // 曖昧一致した結果を返す
// 結果
// [
// { item: { name: 'ディーエヌエー' }, refIndex: 2 },
// { item: { name: 'ディーエヌアエー' }, refIndex: 1 },
// { item: { name: 'ディー・エヌ・エー' }, refIndex: 0 }
// ]
データが膨大だと、もっとしっかりしたのを組まないといけなくなるかと思いますが、ひとまずといった使い方ですね。