Back to Fuse

Getting Started

docs/getting-started.md

7.4.12.3 KB
Original Source

Getting Started

Installation

::: code-group

sh
npm install fuse.js
sh
pnpm add fuse.js
sh
yarn add fuse.js
sh
bun add fuse.js

:::

Importing

::: code-group

js
import Fuse from 'fuse.js'
js
const Fuse = require('fuse.js')

:::

CDN

::: code-group

html
<script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>
html
<script type="module">
  import Fuse from 'https://cdn.jsdelivr.net/npm/[email protected]/dist/fuse.mjs'
</script>

:::

Also available on unpkg.

Deno

typescript
// @deno-types="https://deno.land/x/[email protected]/dist/fuse.d.ts"
import Fuse from 'https://deno.land/x/[email protected]/dist/fuse.min.mjs'

Quick Start

js
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:

BuildIncludesGzip
FullFuzzy + extended + logical + token search~8.6 kB
BasicFuzzy search only~6.8 kB

Import paths:

js
// 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/:

UMDCommonJSES Module
Fullfuse.jsfuse.cjsfuse.mjs
Basicfuse.basic.jsfuse.basic.cjsfuse.basic.mjs
Full (min)fuse.min.jsfuse.min.mjs
Basic (min)fuse.basic.min.jsfuse.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():

js
import Fuse from 'fuse.js/basic'
import { ExtendedSearch } from 'fuse.js'

Fuse.use(ExtendedSearch)