Query Syntax
staticseek supports a variety of query syntaxes to enhance search capabilities:
Fuzzy Search
By default, staticseek performs fuzzy search with an edit distance of 1, meaning it tolerates one character error per search term. You can adjust this tolerance in two ways:
-
For individual searches, specify the edit distance in the query:
distance:2 searchterm // Allows up to 2 character differences -
To set a different default edit distance for all searches, configure it during index creation:
const index = createIndex(LinearIndex, array_of_articles, {distance: 2 // Set default edit distance for all searches});
Exact Match Search
Use double quotes for exact phrase matching:
"exact phrase" // Matches the exact phrase including spaces
Use \"
to include double quotes in the search term.
Boolean Operations
-
AND Search: Space-separated terms (both terms must match)
term1 term2 // Documents containing both terms -
OR Search: Terms separated by OR (either term can match)
term1 OR term2 // Documents containing either term -
NOT Search: Terms prefixed with minus (exclude documents with term)
-term1 term2 // Documents with term2 but without term1Note: NOT search must be used with AND search; standalone NOT terms are ignored.
Field-Specific Search
Limit search to specific fields:
from:title searchterm // Search only in title field
How to specify fields
There are two ways to specify fields in a query:
- Full path: Use the full path to the field, starting from the root object:
from:data.title searchterm
- Field name only: If the field is a leaf, you can specify the field name directly:
from:title searchterm
You can only specify leaf fields. If you specify a non-leaf field, the results of the search is empty.
Error Handling
When executing queries, it is important to handle potential errors. If the query fails or if the provided index is invalid, a StaticSeekError
will be returned. Ensure to check for this error and handle it appropriately in your application.