github.com/altipla-consulting/ravendb-go-client@v0.1.3/document_query_customization.go (about)

     1  package ravendb
     2  
     3  import "time"
     4  
     5  // Note: in Java it's hidden behind IDocumentQueryCustomization
     6  
     7  // DocumentQueryCustomization allows customizing query
     8  type DocumentQueryCustomization struct {
     9  	query *abstractDocumentQuery
    10  }
    11  
    12  // GetQueryOperation returns raw query operation that will be sent to the server
    13  func (d *DocumentQueryCustomization) GetQueryOperation() *queryOperation {
    14  	return d.query.queryOperation
    15  }
    16  
    17  // AddBeforeQueryExecutedListener allows you to modify index query before it's executed
    18  func (d *DocumentQueryCustomization) AddBeforeQueryExecutedListener(action func(*IndexQuery)) int {
    19  	return d.query.addBeforeQueryExecutedListener(action)
    20  }
    21  
    22  // RemoveBeforeQueryExecutedListener removes listener added with AddBeforeQueryExecutedListener
    23  func (d *DocumentQueryCustomization) RemoveBeforeQueryExecutedListener(idx int) {
    24  	d.query.removeBeforeQueryExecutedListener(idx)
    25  }
    26  
    27  // AddAfterQueryExecutedListener adds a callback to get the results of the query
    28  func (d *DocumentQueryCustomization) AddAfterQueryExecutedListener(action func(*QueryResult)) int {
    29  	return d.query.addAfterQueryExecutedListener(action)
    30  }
    31  
    32  // RemoveAfterQueryExecutedListener removes callback added with AddAfterQueryExecutedListener
    33  func (d *DocumentQueryCustomization) RemoveAfterQueryExecutedListener(idx int) {
    34  	d.query.removeAfterQueryExecutedListener(idx)
    35  }
    36  
    37  // AddAfterStreamExecutedCallback adds a callback to get stream result
    38  func (d *DocumentQueryCustomization) AddAfterStreamExecutedCallback(action func(map[string]interface{})) int {
    39  	return d.query.addAfterStreamExecutedListener(action)
    40  }
    41  
    42  // RemoveAfterStreamExecutedCallback remove callback added with AddAfterStreamExecutedCallback
    43  func (d *DocumentQueryCustomization) RemoveAfterStreamExecutedCallback(idx int) {
    44  	d.query.removeAfterStreamExecutedListener(idx)
    45  }
    46  
    47  // NoCaching disables caching for query results
    48  func (d *DocumentQueryCustomization) NoCaching() {
    49  	d.query.noCaching()
    50  }
    51  
    52  // NoTracking disables tracking for quried entities by Raven's Unit of Work
    53  // Using this option prevents hodling query results in memory
    54  func (d *DocumentQueryCustomization) NoTracking() {
    55  	d.query.noTracking()
    56  }
    57  
    58  // RandomOrdering orders search results randomly.
    59  func (d *DocumentQueryCustomization) RandomOrdering() {
    60  	d.query.randomOrdering()
    61  }
    62  
    63  // RandomOrdering orders search results randomly with a given seed.
    64  // This is useful for repeatable random queries
    65  func (d *DocumentQueryCustomization) RandomOrderingWithSeed(seed string) {
    66  	d.query.randomOrderingWithSeed(seed)
    67  }
    68  
    69  // WaitForNonStaleResults instructs the query to wait for non results.
    70  // waitTimeout of 0 means infinite timeout
    71  // This shouldn't be used outside of unit tests  unless you are well aware of the implications
    72  func (d *DocumentQueryCustomization) WaitForNonStaleResults(waitTimeout time.Duration) {
    73  	d.query.waitForNonStaleResults(waitTimeout)
    74  }