ghcide-2.7.0.0: The core of an IDE
Safe HaskellSafe-Inferred
LanguageGHC2021

Text.Fuzzy.Parallel

Description

Parallel versions of filter and simpleFilter

Synopsis

Documentation

filter Source #

Arguments

:: Int

Chunk size. 1000 works well.

-> Int

Max. number of results wanted

-> Text

Pattern.

-> [t]

The list of values containing the text to search in.

-> (t -> Text)

The function to extract the text from the container.

-> [Scored t]

The list of results, sorted, highest score first.

The function to filter a list of values by fuzzy search on the text extracted from them, using a custom matching function which determines how close words are.

filter' Source #

Arguments

:: Int

Chunk size. 1000 works well.

-> Int

Max. number of results wanted

-> Text

Pattern.

-> [t]

The list of values containing the text to search in.

-> (t -> Text)

The function to extract the text from the container.

-> (Text -> Text -> Maybe Int)

Custom scoring function to use for calculating how close words are When the function returns Nothing, this means the values are incomparable.

-> [Scored t]

The list of results, sorted, highest score first.

The function to filter a list of values by fuzzy search on the text extracted from them, using a custom matching function which determines how close words are.

simpleFilter Source #

Arguments

:: Int

Chunk size. 1000 works well.

-> Int

Max. number of results wanted

-> Text

Pattern to look for.

-> [Text]

List of texts to check.

-> [Scored Text]

The ones that match.

Return all elements of the list that have a fuzzy match against the pattern. Runs with default settings where nothing is added around the matches, as case insensitive.

>>> simpleFilter 1000 10 "vm" ["vim", "emacs", "virtual machine"]
[Scored {score = 4, original = "vim"},Scored {score = 4, original = "virtual machine"}]

simpleFilter' Source #

Arguments

:: Int

Chunk size. 1000 works well.

-> Int

Max. number of results wanted

-> Text

Pattern to look for.

-> [Text]

List of texts to check.

-> (Text -> Text -> Maybe Int)

Custom scoring function to use for calculating how close words are

-> [Scored Text]

The ones that match.

Return all elements of the list that have a fuzzy match against the pattern, the closeness of the match is determined using the custom scoring match function that is passed. Runs with default settings where nothing is added around the matches, as case insensitive.

match Source #

Arguments

:: Text

Pattern in lowercase except for first character

-> Text

The text to search in.

-> Maybe Int

The score

Returns the rendered output and the matching score for a pattern and a text. Two examples are given below:

>>> match "fnt" "infinite"
Just 3
>>> match "hsk" "Haskell"
Just 5

defChunkSize :: Int Source #

Sensible default value for chunk size to use when calling simple filter.

defMaxResults :: Int Source #

Sensible default value for the number of max results to use when calling simple filter.

data Scored a Source #

Constructors

Scored 

Fields

Instances

Instances details
Functor Scored Source # 
Instance details

Defined in Text.Fuzzy.Parallel

Methods

fmap :: (a -> b) -> Scored a -> Scored b #

(<$) :: a -> Scored b -> Scored a #

Show a => Show (Scored a) Source # 
Instance details

Defined in Text.Fuzzy.Parallel

Methods

showsPrec :: Int -> Scored a -> ShowS #

show :: Scored a -> String #

showList :: [Scored a] -> ShowS #