Fast String Search
This module can search substrings in a string by using N-API and boyer-moore-magiclen. The result of benchmark shows that this module is 10 times faster than the indexOf
function of a Node.js string.
Initialization
Import this module by using require
function.
const fss = require("fast-string-search");
Usage
indexOf
Full text search in a string.
const a = fss.indexOf("coocoocoocoo", "oocoo");
You can also set the offset of characters and the number of substrings you want to find.
const a = fss.indexOf(source, pattern, offset, limit);
The default value of offset
is 0
, and the default value of limit
is 1000
.
indexOfSkip
Normal text search in a string.
const a = fss.indexOfSkip("coocoocoocoo", "oocoo");
lastIndexOf
Full text search from the end of a string.
const a = fss.lastIndexOf("coocoocoocoo", "oocoo");
utf16IndexOf/utf16IndexOfSkip/utf16LastIndexOf
const a = fss.utf16IndexOf(Buffer.from("coocoocoocoo", "utf16le"), Buffer.from("oocoo", "utf16le"));
Tests
To run the test suite, first install the dependencies, then run npm test
:
npm install
npm test
Benchmark
To run the benchmark suite, first install the dependencies, then run npm run benchmark
:
npm install
npm run benchmark
Here is my result,
Full Text Search
- 87 milliseconds
✓ natively search text(indexOf) (87ms)
- 7 milliseconds
✓ Use FSS to search text
Normal Text Search
- 35 milliseconds
✓ natively search text(indexOf)
- 46 milliseconds
✓ natively search text(RegExp) (46ms)
- 6 milliseconds
✓ Use FSS to search text
License
MIT