Getting Started
Installation
npm install fuse.js
yarn add fuse.js
Importing
ES Module:
import Fuse from 'fuse.js'
CommonJS:
const Fuse = require('fuse.js')
CDN
<script src="https://cdn.jsdelivr.net/npm/fuse.js@7.4.0-beta.1-beta.1"></script>
ES Module via CDN:
<script type="module">
import Fuse from 'https://cdn.jsdelivr.net/npm/fuse.js@7.4.0-beta.1-beta.1/dist/fuse.mjs'
</script>
Also available on unpkg.
Deno
// @deno-types="https://deno.land/x/fuse@v7.4.0-beta.1-beta.1/dist/fuse.d.ts"
import Fuse from 'https://deno.land/x/fuse@v7.4.0-beta.1-beta.1/dist/fuse.min.mjs'
Quick Start
import Fuse from 'fuse.js'
const books = [
{ title: "Old Man's War", author: 'John Scalzi' },
{ title: 'The Lock Artist', author: 'Steve Hamilton' }
]
const fuse = new Fuse(books, {
keys: ['title', 'author']
})
const results = fuse.search('jon')
// [{ item: { title: "Old Man's War", author: "John Scalzi" }, refIndex: 0 }]
Fuse.js searches the keys you specify and returns results ranked by relevance. A score of 0 is a perfect match; 1 is a complete mismatch.
Builds
Fuse.js ships two builds:
| Build | Includes | Gzip |
|---|---|---|
| Full | Fuzzy search + extended search + token search | ~8 kB |
| Basic | Fuzzy search only | ~6.5 kB |
Import paths:
// Full build (default)
import Fuse from 'fuse.js'
// Basic build
import Fuse from 'fuse.js/basic'
// Minified variants
import Fuse from 'fuse.js/min'
import Fuse from 'fuse.js/min-basic'
Build files in dist/:
| UMD | CommonJS | ES Module | |
|---|---|---|---|
| Full | fuse.js | fuse.cjs | fuse.mjs |
| Basic | fuse.basic.js | fuse.basic.cjs | fuse.basic.mjs |
| Full (min) | fuse.min.js | — | fuse.min.mjs |
| Basic (min) | fuse.basic.min.js | — | fuse.basic.min.mjs |
The basic build does not include extended search or token search. If you need those features with the basic build, register them at runtime with Fuse.use():
import Fuse from 'fuse.js/basic'
import { ExtendedSearch } from 'fuse.js'
Fuse.use(ExtendedSearch)
