attribute-search-engine 0.1.0

Generic search engine for rows with attributes using different matchers.
Documentation
  • Coverage
  • 0%
    0 out of 2 items documented0 out of 1 items with examples
  • Size
  • Source code size: 3.93 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 94.12 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • Repository
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • NHollmann

attribute-search-engine

Generic search engine for rows with attributes using different matchers.

  • Rows
    • Attributes
      • ExactMatch (HashMap)
      • PrefixMatch (PrefixTree/Trie)
      • RangeMatch (BTreeMap)
  • 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)
      1. get a set for each predicate
      2. get the union of these sets for each disjunction
      3. get the intersections of the resulting sets for each conjunction if the result is empty at some point you can short-circuit and stop
      4. 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
      5. optionally perform a fulltext search