January 2020
Intermediate to advanced
640 pages
16h 56m
English
The clients of the in-memory indexer submit search queries by invoking the Search method. The implementation of this method is as follows:
func (i *InMemoryBleveIndexer) Search(q index.Query) (index.Iterator, error) { var bq query.Query switch q.Type { case index.QueryTypePhrase: bq = bleve.NewMatchPhraseQuery(q.Expression) default: bq = bleve.NewMatchQuery(q.Expression) } searchReq := bleve.NewSearchRequest(bq) searchReq.SortBy([]string{"-PageRank", "-_score"}) searchReq.Size = batchSize searchReq.From = q.Offset rs, err := i.idx.Search(searchReq) if err != nil { return nil, xerrors.Errorf("search: %w", err) } return &bleveIterator{idx: i, searchReq: searchReq, rs: rs, cumIdx: q.Offset}, nil }
The first thing that our ...