1.0.10 • Published 11 months ago

@pdfnav/smart-text-search v1.0.10

Weekly downloads
-
License
ISC
Repository
github
Last release
11 months ago

Smart Text Search

Search some text and receive a search score using configurable parameters.

Usage

import { search, SearchOptions } from "@pdfnav/smart-text-search";
const query = "quick fox";
const body = "The quick brown fox jumps over the lazy dog";

// Receive a score
const searchScore = search({ query, body });

// Provide custom search options tailored to your usecase
const options: SearchOptions = {
  exactMatchPoints: 70,
  exactContainingMatchPoints: 50,
  singleWordMatchPoints: 1,
  singleWordMatchLengthMultiplier: 1.5,
  uniqueSingleWordMatchPoints: 2,
  uniqueSingleWordMatchLengthMultiplier: 1.5,
  consecutiveWordMatchPoints: 5,
  consecutiveWordMatchLengthMultiplier: 2,
  consecutiveWordSequenceMatchPoints: 1,
  consecutiveWordSequenceLengthMultiplier: 1.5,
  isCaseSensitive: false,
  shouldMatchPunctuation: true,
  shouldMatchWhitespaceAndPunctuation: true,
  shouldCollapseWhitespace: true,
};
const customisedSearchScore = search({ query, body, options });

Search options

  • exactMatchPoints (number): points to apply upon finding an exact match with body
  • exactContainingMatchPoints (number): points to apply upon finding an exact match within body
  • singleWordMatchPoints (number): points to apply upon finding a single word within query matching with a word in body
  • singleWordMatchLengthMultiplier (number): makes single word matches more significant if they are longer
  • uniqueSingleWordMatchPoints (number): points to apply upon finding a single word within query matching with a word in body, only count unique words
  • uniqueSingleWordMatchLengthMultiplier (number): makes single word matches more significant if they are longer, only count unique words
  • consecutiveWordMatchPoints (number): points to apply when two or more consecutive words in query match
  • consecutiveWordMatchLengthMultiplier (number): makes every consecutive matching word more significant
  • consecutiveWordSequenceMatchPoints (number): points to apply when two or more consecutive characters in query match
  • consecutiveWordSequenceLengthMultiplier (number): makes longer matching sequences more significant
  • isCaseSensitive (boolean): make search case sensitive
  • shouldMatchPunctuation (boolean): make punctuation not count as a match (removes all punctuation from string)
  • shouldMatchWhitespaceAndPunctuation (boolean): make whitespace sequences and punctuation contribute to score
  • shouldCollapseWhitespace (boolean): replace consecutive whitespace with a single space
1.0.10

11 months ago

1.0.9

12 months ago

1.0.8

12 months ago

1.0.7

12 months ago

1.0.6

12 months ago

1.0.5

12 months ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago