View Source Haystack.Query.Clause behaviour (Haystack v0.1.0)

A module for defining query clauses.

Link to this section Summary

Callbacks

Evaluate the given clause.

Functions

Build the clause into a statement.

Add a list of clauses.

Return the default clauses.

Add a list of expressions.

Create a new clause.

Link to this section Types

@type k() :: atom()
@type t() :: %Haystack.Query.Clause{
  clauses: [t()],
  expressions: [Haystack.Query.Expression.t()],
  k: k()
}

Link to this section Callbacks

@callback evaluate(Haystack.Query.t(), Haystack.Index.t(), [Haystack.Query.statement()]) ::
  [map()]

Evaluate the given clause.

Link to this section Functions

@spec build(t()) :: Haystack.Query.statement()

Build the clause into a statement.

examples

Examples

iex> clause = Query.Clause.new(:any)
iex> Query.Clause.build(clause)
Link to this function

clauses(clause, clauses)

View Source

Add a list of clauses.

examples

Examples

iex> clause = Query.Clause.new(:any)
iex> Query.Clause.clauses(clause, [Query.Clause.new(:any)])
@spec default() :: [{atom(), module()}]

Return the default clauses.

examples

Examples

iex> Query.Clause.default()
Link to this function

expressions(clause, expressions)

View Source

Add a list of expressions.

examples

Examples

iex> clause = Query.Clause.new(:any)
iex> expression = Query.Expression.new(:match, field: "name", term: "Haystack")
iex> Query.Clause.expressions(clause, [expression])
@spec new(k()) :: t()

Create a new clause.

examples

Examples

iex> Query.Clause.new(:any)