Fixed pager

This commit is contained in:
James Mills
2021-02-03 01:56:56 +10:00
parent 382fd677c3
commit 6dc7510e8f
6 changed files with 37 additions and 20 deletions

View File

@@ -10,11 +10,12 @@ import (
type Indexer interface {
Index(entry *Entry) error
Search(q string) (*bleve.SearchResult, error)
Search(q string, p int) (*bleve.SearchResult, error)
}
type indexer struct {
idx bleve.Index
conf *Config
idx bleve.Index
}
func NewIndexer(conf *Config) (Indexer, error) {
@@ -36,18 +37,20 @@ func NewIndexer(conf *Config) (Indexer, error) {
return nil, err
}
return &indexer{idx: idx}, nil
return &indexer{conf: conf, idx: idx}, nil
}
func (i *indexer) Index(entry *Entry) error {
return i.idx.Index(entry.Hash(), entry)
}
func (i *indexer) Search(q string) (*bleve.SearchResult, error) {
func (i *indexer) Search(q string, p int) (*bleve.SearchResult, error) {
query := bleve.NewMatchQuery(q)
searchRequest := bleve.NewSearchRequest(query)
searchRequest.Fields = []string{"URL", "Title", "Author", "Summary", "Length"}
searchRequest.Highlight = bleve.NewHighlight()
searchRequest.Size = i.conf.ResultsPerPage
searchRequest.From = searchRequest.Size * p
searchResults, err := i.idx.Search(searchRequest)
if err != nil {
log.WithError(err).Error("error searching index")