deleteByQuery triggers the given query for the index and performs batched deletions for the hits synchronously in a blocking manner. In case of collection deletions, the usage could be from a per dcp feed like below, p := newDelByQueryHandler(t.bindex) n, err := p.deleteByQuery(query) where query is
(query query.Query)
| 67 | // against the `_scope_collection` field with the search text |
| 68 | // _$scope_$collection and analyzer `keyword`. |
| 69 | func (d *delByQueryHandler) deleteByQuery(query query.Query) (int, error) { |
| 70 | var handlerMaker search.MakeDocumentMatchHandler |
| 71 | handlerMaker = d.MakeDocumentMatchHandler |
| 72 | ctx := context.WithValue(context.Background(), |
| 73 | search.MakeDocumentMatchHandlerKey, |
| 74 | handlerMaker) |
| 75 | sr := &bleve.SearchRequest{ |
| 76 | Query: query, |
| 77 | Size: 1, |
| 78 | } |
| 79 | _, err := d.index.SearchInContext(ctx, sr) |
| 80 | if err != nil { |
| 81 | return d.totDelCount, fmt.Errorf("bleve_delete: deleteByQuery failed, "+ |
| 82 | "for query: %+v, err: %v", *sr, err) |
| 83 | } |
| 84 | return d.totDelCount, err |
| 85 | } |