search

package
v5.0.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 14, 2019 License: BSD-3-Clause, BSD-3-Clause Imports: 23 Imported by: 0

Documentation

Index

Constants

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

View Source
const (
	MinTokenLength = 3
)

Variables

This section is empty.

Functions

func MinMaxIDs

func MinMaxIDs(conv chat1.Conversation) (min, max chat1.MessageID)

func UpgradeSearchOptsFromQuery

func UpgradeSearchOptsFromQuery(query string, opts chat1.SearchOpts, username string) (string, chat1.SearchOpts)

Types

type Indexer

type Indexer struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

func NewIndexer

func NewIndexer(g *globals.Context) *Indexer

func (*Indexer) Add

func (idx *Indexer) Add(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID,
	msgs []chat1.MessageUnboxed) (err error)

func (*Indexer) CancelSync

func (idx *Indexer) CancelSync(ctx context.Context)

func (*Indexer) FullyIndexed

func (idx *Indexer) FullyIndexed(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID) (res bool, err error)

func (*Indexer) GetStoreHits

func (idx *Indexer) GetStoreHits(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID,
	query string) (res map[chat1.MessageID]chat1.EmptyStruct, err 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) IsBackgroundActive

func (idx *Indexer) IsBackgroundActive() bool

func (*Indexer) OnDbNuke

func (idx *Indexer) OnDbNuke(mctx libkb.MetaContext) error

func (*Indexer) PercentIndexed

func (idx *Indexer) PercentIndexed(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID) (res int, err error)

func (*Indexer) PokeSync

func (idx *Indexer) PokeSync(ctx context.Context)

func (*Indexer) Remove

func (idx *Indexer) Remove(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID,
	msgs []chat1.MessageUnboxed) (err error)

func (*Indexer) Resume

func (idx *Indexer) Resume(ctx context.Context) bool

func (*Indexer) Search

func (idx *Indexer) Search(ctx context.Context, uid gregor1.UID, query, origQuery 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) SearchableConvs

func (idx *Indexer) SearchableConvs(ctx context.Context, uid gregor1.UID, convID *chat1.ConversationID) (res []types.RemoteConversation, err error)

func (*Indexer) SelectiveSync

func (idx *Indexer) SelectiveSync(ctx context.Context, uid gregor1.UID) (err error)

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) SetMaxSyncConvs

func (idx *Indexer) SetMaxSyncConvs(x int)

func (*Indexer) SetPageSize

func (idx *Indexer) SetPageSize(pageSize int)

func (*Indexer) SetReindexCh

func (idx *Indexer) SetReindexCh(ch chan chat1.ConversationID)

func (*Indexer) SetStartSyncDelay

func (idx *Indexer) SetStartSyncDelay(d time.Duration)

func (*Indexer) SetSyncLoopCh

func (idx *Indexer) SetSyncLoopCh(ch chan struct{})

func (*Indexer) Start

func (idx *Indexer) Start(ctx context.Context, uid gregor1.UID)

func (*Indexer) Stop

func (idx *Indexer) Stop(ctx context.Context) chan struct{}

func (*Indexer) Suspend

func (idx *Indexer) Suspend(ctx context.Context) bool

func (*Indexer) SyncLoop

func (idx *Indexer) SyncLoop(ctx context.Context, uid gregor1.UID)

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,
	queryRe *regexp.Regexp, uiCh chan chat1.ChatSearchHit, opts chat1.SearchOpts) (hits []chat1.ChatSearchHit, msgHits []chat1.MessageUnboxed, err error)

func (*RegexpSearcher) SetPageSize

func (s *RegexpSearcher) SetPageSize(pageSize int)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL