Documentation ¶
Index ¶
- func Add(entry *IndexData)
- func AddEntry(src DbSource)
- func Analyze(source string) []string
- func GenerateIndexer()
- func LoadDb(recordsFile io.Reader, indexFile io.Reader) error
- func ResetMemoryDb()
- func SaveDb(recFile io.Writer, idxFile io.Writer) error
- func Tokenize(source string) []string
- func WriteRecordsToFile(input io.Writer)
- type ApolloIndexer
- type BleveIndexer
- type DataApi
- type DbSource
- type DummyFile
- type Id
- type IndexData
- type Indexer
- type OpenedBleveIndexer
- type Record
- type SearchResult
- type Searcher
- type SearcherI
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateIndexer ¶
func GenerateIndexer()
func ResetMemoryDb ¶
func ResetMemoryDb()
func Tokenize ¶
takes in a source of text and converts into an array of stemmed tokens (filtering out stop words and punctuation) This gets called when ingesting new data and when searching TODO: or is it better to just "generateAllPossibleVarations" of a word on the client side, then wouldn't need to stem on the backend?
func WriteRecordsToFile ¶
Types ¶
type ApolloIndexer ¶
type ApolloIndexer struct {
// contains filtered or unexported fields
}
func NewApolloIndexer ¶
func NewApolloIndexer() *ApolloIndexer
func (*ApolloIndexer) AddEntries ¶
func (s *ApolloIndexer) AddEntries(entries []*IndexData)
func (*ApolloIndexer) AddEntry ¶
func (s *ApolloIndexer) AddEntry(entry *IndexData)
func (*ApolloIndexer) AddSrcToDb ¶
func (s *ApolloIndexer) AddSrcToDb(data []*IndexData)
func (*ApolloIndexer) Search ¶
func (s *ApolloIndexer) Search(keywords string) ([]SearchResult, error)
type BleveIndexer ¶
type BleveIndexer struct {
// contains filtered or unexported fields
}
func NewBleveIndexer ¶
func NewBleveIndexer() *BleveIndexer
func OpenBleveIndexer ¶
func OpenBleveIndexer(bleveDir string) *BleveIndexer
func (*BleveIndexer) AddEntry ¶
func (s *BleveIndexer) AddEntry(entry *IndexData)
func (*BleveIndexer) AddSrcToDb ¶
func (s *BleveIndexer) AddSrcToDb(entries []*IndexData)
func (*BleveIndexer) ExactSearch ¶
func (s *BleveIndexer) ExactSearch(keywords string) ([]SearchResult, error)
func (*BleveIndexer) Search ¶
func (s *BleveIndexer) Search(keywords string) ([]SearchResult, error)
type DataApi ¶
type DataApi interface {
Search(string) ([]SearchResult, error)
}
type DummyFile ¶
func (DummyFile) TransformToData ¶
type Indexer ¶
type Indexer interface { AddSrcToDb([]*IndexData) Search(string) ([]SearchResult, error) }
type OpenedBleveIndexer ¶
type OpenedBleveIndexer struct {
// contains filtered or unexported fields
}
func (*OpenedBleveIndexer) AddSrcToDb ¶
func (s *OpenedBleveIndexer) AddSrcToDb(entries []*IndexData)
func (*OpenedBleveIndexer) ExactSearch ¶
func (s *OpenedBleveIndexer) ExactSearch(keywords string) ([]SearchResult, error)
func (*OpenedBleveIndexer) Search ¶
func (s *OpenedBleveIndexer) Search(keywords string) ([]SearchResult, error)
type Record ¶
type Record struct { //unique identifier ID Id `json:"id"` //title Title string `json:"title"` //potential link to the source if applicable Link string `json:"link"` //text content to display on results page Content string `json:"content"` //map of tokens to their frequency TokenFrequency map[string]int `json:"tokenFrequency"` Provider string `json:"provider"` }
database unit for all sources
func ReadRecord ¶
type SearchResult ¶
type SearchResult struct { Title string `json:"title"` Link string `json:"link"` Content string `json:"content"` Provider string `json:"provider"` Matches int `json:"matches"` ContentType string `json:"contentType"` Score float64 `json:"score"` }
type SearchResult struct { IndexData Matches int `json:"matches"` }
func BatchDuplicateResults ¶
func BatchDuplicateResults(slice []SearchResult) []SearchResult
type Searcher ¶
type Searcher struct {
// contains filtered or unexported fields
}
func NewSearcher ¶
func NewSearcher() *Searcher
func NewSearcherUsingIndexer ¶
func (*Searcher) AddApiClient ¶
func (*Searcher) AddSrcToDb ¶
Click to show internal directories.
Click to hide internal directories.