gitcoinco / grants-stack-search

MIT License
2 stars 2 forks source link

add keyword-based searching #7

Closed bard closed 1 year ago

bard commented 1 year ago

Scenario: user wants to locate a specific project using a specific term (e.g. project name) as opposed to explore available projects using generic terms

Requirements:

Out of scope:

Design sketch:

  1. select indexing engine; criteria: quickest to get started with; in-process, i.e. no dependency external processes or services; candidates: lunr.py, xapian, sphinx
  2. wrap existing semantic search in a generic interface/class (e.g. search_engine.load(documents) and search_engine.search(query)
  3. implement index and search methods from 2) using engine from 1)
  4. validate input documents such that the validation state is part of the data type (aka "parse, don't validate")

Open questions and trade-offs:

michellema1208 commented 1 year ago

@bard thank you so much, this is so awesome and thorough!

Basic question: what is the outcome of keyword-based filtering vs. keyword-based search? How do they differ/compare?

bard commented 1 year ago

Basic question: what is the outcome of keyword-based filtering vs. keyword-based search? How do they differ/compare?

It would satisfy the scenario mentioned at the beginning, i.e. would allow to ... "locate a specific project using a specific term (e.g. project name) as opposed to explore available projects using generic terms". Happy to modify the spec if you have suggestions on how to make that clearer.