github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/core/search/booleanClause.go (about)

     1  package search
     2  
     3  type Occur int
     4  
     5  var (
     6  	MUST     = Occur(1)
     7  	SHOULD   = Occur(2)
     8  	MUST_NOT = Occur(3)
     9  )
    10  
    11  func (occur Occur) String() string {
    12  	switch occur {
    13  	case MUST:
    14  		return "+"
    15  	case SHOULD:
    16  		return ""
    17  	case MUST_NOT:
    18  		return "-"
    19  	}
    20  	panic("should not be here")
    21  }
    22  
    23  type BooleanClause struct {
    24  	query Query
    25  	occur Occur
    26  }
    27  
    28  func NewBooleanClause(query Query, occur Occur) *BooleanClause {
    29  	return &BooleanClause{
    30  		query: query,
    31  		occur: occur,
    32  	}
    33  }
    34  
    35  func (c *BooleanClause) IsProhibited() bool {
    36  	return c.occur == MUST_NOT
    37  }
    38  
    39  func (c *BooleanClause) IsRequired() bool {
    40  	return c.occur == MUST
    41  }