2 unstable releases
0.2.0 | Jan 4, 2025 |
---|---|
0.1.0 | Dec 25, 2024 |
#82 in Database implementations
321 downloads per month
16KB
324 lines
Attribute Search Engine
Attribute Search Engine is a generic search engine for rows consisting of attributes, that can be searched using different matchers.
Warning: This project is not finished yet and the public interface may change.
- Rows
- Attributes
- ExactMatch (HashMap)
- PrefixMatch (PrefixTree/Trie) (Strings only)
- RangeMatch (BTreeMap)
- Attributes
- Queries
- Are in CNF (Conjunctive Normal Form)
Example:
+name:Hans,Peter +age:25-35 -lastname=Doe
Means:(name=Hans || name==Peter) && (age >= 25 && age <= 35) && !(lastname=Doe)
-
- get a set for each predicate
- get the union of these sets for each disjunction
- get the intersections of the resulting sets for each conjunction if the result is empty at some point you can short-circuit and stop
- get the difference of the conjunction result with all negated conjunctions if the result is empty at some point you can short-circuit and stop
- optionally perform a fulltext search
- Are in CNF (Conjunctive Normal Form)
Example:
Dependencies
~5.5MB
~83K SLoC