Holumbus-Searchengine-1.2.3: A search and indexing engine.

Portabilityportable
Stabilityexperimental
MaintainerTimo B. Huebel (tbh@holumbus.org)
Safe HaskellNone

Holumbus.Query.Language.Grammar

Contents

Description

Version : 0.2

The Holumbus query language definition.

The specific syntax of any query language can be designed independently by creating appropriate parsers. Also see Holumbus.Query.Language.Parser.

Synopsis

Query data types

data Query Source

The query language.

Constructors

Word String

Single case-insensitive word.

Phrase String

Single case-insensitive phrase.

CaseWord String

Single case-sensitive word.

CasePhrase String

Single case-sensitive phrase.

FuzzyWord String

Single fuzzy word.

Specifier [Context] Query

Restrict query to a list of contexts.

Negation Query

Negate the query.

BinQuery BinOp Query Query

Combine two queries through a binary operation.

Instances

data BinOp Source

A binary operation.

Constructors

And

Intersect two queries.

Or

Union two queries.

But

Filter a query by another, q1 BUT q2 is equivalent to q1 AND NOT q2.

Instances

Optimizing

optimize :: Query -> QuerySource

Transforms all (BinQuery And q1 q2) where one of q1 or q2 is a Negation into BinQuery Filter q1 q2 or BinQuery Filter q2 q1 respectively.

checkWith :: (String -> Bool) -> Query -> BoolSource

Check if the query arguments comply with some custom predicate.

extractTerms :: Query -> [String]Source

Returns a list of all terms in the query.