Documentation ¶
Index ¶
- Constants
- type Indexer
- func (idx *Indexer) Add(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID, ...) (err error)
- func (idx *Indexer) GetConvIndex(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID) (*chat1.ConversationIndex, error)
- func (idx *Indexer) IndexInbox(ctx context.Context, uid gregor1.UID) (res map[string]chat1.ProfileSearchConvStats, err error)
- func (idx *Indexer) Remove(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID, ...) (err error)
- func (idx *Indexer) Search(ctx context.Context, uid gregor1.UID, query string, opts chat1.SearchOpts, ...) (res *chat1.ChatSearchInboxResults, err error)
- func (idx *Indexer) SelectiveSync(ctx context.Context, uid gregor1.UID, forceReindex bool)
- func (idx *Indexer) SetConsumeCh(ch chan chat1.ConversationID)
- func (idx *Indexer) SetMaxBoostConvs(x int)
- func (idx *Indexer) SetMaxBoostMsgs(x int)
- func (idx *Indexer) SetMaxSyncConvs(x int)
- func (idx *Indexer) SetPageSize(pageSize int)
- func (idx *Indexer) SetReindexCh(ch chan chat1.ConversationID)
- func (idx *Indexer) Start(ctx context.Context, uid gregor1.UID)
- func (idx *Indexer) Stop(ctx context.Context) chan struct{}
- type RegexpSearcher
Constants ¶
View Source
const IndexVersion = 3
Bumped whenever there are tokenization or structural changes to building the index
View Source
const MaxAllowedSearchHits = 10000
View Source
const MaxAllowedSearchMessages = 100000
Only used by RegexpSearcher
View Source
const MaxContext = 15
Paging context around a search hit
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Indexer ¶
type Indexer struct { globals.Contextified utils.DebugLabeler sync.Mutex // contains filtered or unexported fields }
func NewIndexer ¶
func (*Indexer) Add ¶
func (idx *Indexer) Add(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID, msgs []chat1.MessageUnboxed) (err error)
func (*Indexer) GetConvIndex ¶
func (idx *Indexer) GetConvIndex(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID) (*chat1.ConversationIndex, error)
func (*Indexer) IndexInbox ¶
func (idx *Indexer) IndexInbox(ctx context.Context, uid gregor1.UID) (res map[string]chat1.ProfileSearchConvStats, err error)
IndexInbox is only exposed in devel for debugging/profiling the indexing process.
func (*Indexer) Remove ¶
func (idx *Indexer) Remove(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID, msgs []chat1.MessageUnboxed) (err error)
func (*Indexer) Search ¶
func (idx *Indexer) Search(ctx context.Context, uid gregor1.UID, query string, opts chat1.SearchOpts, hitUICh chan chat1.ChatSearchInboxHit, indexUICh chan chat1.ChatSearchIndexStatus) (res *chat1.ChatSearchInboxResults, err error)
Search tokenizes the given query and finds the intersection of all matches for each token, returning matches.
func (*Indexer) SelectiveSync ¶
SelectiveSync queues up a small number of jobs on the background loader periodically so our index can cover all conversations. The number of jobs varies between desktop and mobile so mobile can be more conservative.
func (*Indexer) SetConsumeCh ¶
func (idx *Indexer) SetConsumeCh(ch chan chat1.ConversationID)
func (*Indexer) SetMaxBoostConvs ¶
func (*Indexer) SetMaxBoostMsgs ¶
func (*Indexer) SetMaxSyncConvs ¶
func (*Indexer) SetPageSize ¶
func (*Indexer) SetReindexCh ¶
func (idx *Indexer) SetReindexCh(ch chan chat1.ConversationID)
type RegexpSearcher ¶
type RegexpSearcher struct { globals.Contextified utils.DebugLabeler // contains filtered or unexported fields }
func NewRegexpSearcher ¶
func NewRegexpSearcher(g *globals.Context) *RegexpSearcher
func (*RegexpSearcher) Search ¶
func (s *RegexpSearcher) Search(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID, re *regexp.Regexp, uiCh chan chat1.ChatSearchHit, opts chat1.SearchOpts) (hits []chat1.ChatSearchHit, err error)
func (*RegexpSearcher) SetPageSize ¶
func (s *RegexpSearcher) SetPageSize(pageSize int)
Click to show internal directories.
Click to hide internal directories.