sphinx-0.6.0: Haskell bindings to the Sphinx full-text searching daemon.

Safe HaskellNone




escapeText :: Text -> TextSource

Escape all possible meta characters. Most of these characters only need to be escaped in certain contexts however, in normal searching they will all be ignored



:: Configuration

The configuration

-> Text

The indexes, "*" means every index

-> Text

The query string

-> IO (Result QueryResult)

just one search result back

The query function runs a single query against the Sphinx daemon. To pipeline multiple queries in a batch, use and runQueries.



:: ExcerptConfiguration

Contains host and port for connection and optional configuration for buildExcerpts

-> [Text]

list of document contents to be highlighted

-> Text

The indexes, "*" means every index

-> Text

The query string to use for excerpts

-> IO (Result [Text])

the documents with excerpts highlighted

TODO: add configuration options

runQueries :: Configuration -> [Query] -> IO (Result [QueryResult])Source

Make multiple queries at once, using a list of Query. For a single query, just use the query method Easier handling of query result than runQueries'

runQueries' :: Configuration -> [Query] -> IO (Result [SingleResult])Source

Lower level- called by runQueries. This may be useful for debugging problems- warning messages won't get compressed

resultsToMatches :: Int -> [QueryResult] -> [Match]Source

Combine results from runQueries into matches.

maybeQueries :: (Text -> IO ()) -> Configuration -> [Query] -> IO (Maybe [QueryResult])Source

executes runQueries. Log warning and errors, automatically retry. Return a Nothing on error, otherwise a Just.

data Query Source

Data structure representing one query. It can be sent with runQueries or runQueries' to the server in batch mode.




queryString :: Text

The actual query string

queryIndexes :: Text

The indexes, "*" means every index

queryComment :: Text

A comment string.




:: Text

The query string

-> Query

A query value that can be sent to runQueries

This is a convenience function which accepts a search string and builds a query for that string over all indexes without attaching comments to the queries.

data Configuration Source

The configuration for a query

A note about encodings: The encoding specified here is used to encode every Text value that is sent to the server, and it used to decode all of the server's answers, including error messages.

If the specified encoding doesn't support characters sent to the server, they will silently be substituted with the byte value of '\SUB' :: Char before transmission.

If the server sends a byte value back that the encoding doesn't understand, the affected bytes will be converted into special values as specified by that encoding. For example, when decoding invalid UTF-8, all invalid bytes are going to be substituted with '\65533' :: Char.




host :: String

The hostname of the Sphinx daemon

port :: Int

The portnumber of the Sphinx daemon

encoding :: String

Encoding used to encode queries to the server, and decode server responses

weights :: [Int]

Per-field weights

offset :: Int

How many records to seek from result-set start (default is 0)

limit :: Int

How many records to return from result-set starting at offset (default is 20)

mode :: MatchMode

Query matching mode

ranker :: Rank

Ranking mode

sort :: Sort

Match sorting mode

sortBy :: String

Attribute to sort by

minId :: Int

Minimum ID to match, 0 means no limit

maxId :: Int

Maximum ID to match, 0 means no limit

filters :: [Filter]

attribute filters

groupBy :: String

Group-by sorting clause (to sort groups in result set with)

groupSort :: String

Group-by count-distinct attribute

groupByFunc :: GroupByFunction

Group-by function (to pre-process group-by attribute value with)

groupDistinct :: String

Group-by attribute name

maxMatches :: Int

Maximum number of matches to retrieve

cutoff :: Int

Cutoff to stop searching at

retryCount :: Int

Distributed retries count

retryDelay :: Int

Distributed retries delay

indexWeights :: [(String, Int)]

Per-index weights

maxQueryTime :: Int

Maximum query time in milliseconds, 0 means no limit

fieldWeights :: [(String, Int)]

Per-field-name weights

selectClause :: String

attributes to select, defaults to "*"


defaultConfig :: ConfigurationSource

A basic, default configuration.