Is there an existing issue or pull request for this?
[X] I have searched the existing issues and pull requests
Feature description
Extended search is a critical piece of Fuse.js, but it has some limitations when searching fields that contain pipe characters (|). If we could escape the OR operator, this could be worked around for a case like this:
const myData = [
{ example: "for | some | reason | there's | pipes | in | this | string" },
];
const fuse = new Fuse(myData, {
keys: ["example"],
useExtendedSearch: true,
});
fuse.search({
example: `some \\| reason`, // fuzzy match includes pipe character
});
fuse.search({
example: `^"for \\| some" "this \\| string"$`, // match prefix AND suffix including pipe characters
});
fuse.search({
example: `^"for \\| some" | "this \\| string"$`, // match prefix OR suffix including pipe characters
});
Desired solution
Easy: support escaping pipe operators present in extended search queries using backslashes (i.e. \\|)
Alternatives considered
I don't see an alternative to achieve this with Fuse at the moment. For my use-case, this complicates things when queries need to mix exact matches for some fields with fuzzy matches for others.
Is there an existing issue or pull request for this?
Feature description
Extended search is a critical piece of Fuse.js, but it has some limitations when searching fields that contain pipe characters (
|
). If we could escape the OR operator, this could be worked around for a case like this:Desired solution
Easy: support escaping pipe operators present in extended search queries using backslashes (i.e.
\\|
)Alternatives considered
I don't see an alternative to achieve this with Fuse at the moment. For my use-case, this complicates things when queries need to mix exact matches for some fields with fuzzy matches for others.
Additional context
No response