sig
type num = int32
val max_packet_size : int32
type status = Ok | Error | Retry | Warning
val show_status : Sphinx.status -> string
type matching =
MATCH_ALL
| MATCH_ANY
| MATCH_PHRASE
| MATCH_BOOLEAN
| MATCH_EXTENDED
| MATCH_FULLSCAN
| MATCH_EXTENDED2
val show_matching : Sphinx.matching -> string
type ranking =
RANK_PROXIMITY_BM25
| RANK_BM25
| RANK_NONE
| RANK_WORDCOUNT
| RANK_PROXIMITY
| RANK_MATCHANY
| RANK_FIELDMASK
| RANK_SPH04
val show_ranking : Sphinx.ranking -> string
type sort =
SORT_RELEVANCE
| SORT_ATTR_DESC
| SORT_ATTR_ASC
| SORT_TIME_SEGMENTS
| SORT_EXTENDED
| SORT_EXPR
val show_sort : Sphinx.sort -> string
type filter =
FILTER_VALUES of int64 array
| FILTER_RANGE of int64 * int64
| FILTER_FLOATRANGE of float * float
val show_filter : Sphinx.filter -> string
type attr1 =
ATTR_NONE
| ATTR_INTEGER
| ATTR_TIMESTAMP
| ATTR_ORDINAL
| ATTR_BOOL
| ATTR_FLOAT
| ATTR_BIGINT
| ATTR_STRING
| ATTR_WORDCOUNT
type attr_type = Sphinx.attr1 * bool
val show_attr_type : Sphinx.attr_type -> string
type attr_value =
F of float
| L of Sphinx.num
| Q of int64
| MVA of Sphinx.num array
| S of string
val show_attr : Sphinx.attr_value -> string
type grouping =
GROUPBY_DAY
| GROUPBY_WEEK
| GROUPBY_MONTH
| GROUPBY_YEAR
| GROUPBY_ATTR
| GROUPBY_ATTRPAIR
val show_grouping : Sphinx.grouping -> string
type query = {
mutable offset : int;
mutable limit : int;
mutable mode : Sphinx.matching;
mutable sort : Sphinx.sort;
mutable sortby : string;
mutable min_id : int64;
mutable max_id : int64;
mutable filters : (string * Sphinx.filter * bool) list;
mutable groupby : string;
mutable groupfunc : Sphinx.grouping;
mutable groupsort : string;
mutable groupdistinct : string;
mutable maxmatches : int;
mutable cutoff : int;
mutable retrycount : int;
mutable retrydelay : int;
mutable anchor : int list;
mutable indexweights : (string * int) list;
mutable ranker : Sphinx.ranking;
mutable maxquerytime : int;
mutable fieldweights : (string * int) list;
mutable overrides : int list;
mutable select : string;
}
type result = {
fields : string array;
attrs : string array;
matches : (int64 * int * Sphinx.attr_value array) array;
total : int;
total_found : int;
time : int;
words : (string * (int * int)) array;
warning : string option;
}
val default : unit -> Sphinx.query
exception Fail of string
val parse_sockaddr : string -> Unix.sockaddr
type conn = private Unix.file_descr
val connect : ?addr:Unix.sockaddr -> ?persist:bool -> unit -> Sphinx.conn
val close : Sphinx.conn -> unit
val set_limits :
Sphinx.query ->
?maxmatches:int -> ?cutoff:int -> offset:int -> limit:int -> unit
val set_id_range : Sphinx.query -> int64 -> int64 -> unit
val add_filter : Sphinx.query -> string -> Sphinx.filter -> bool -> unit
val build_query :
Sphinx.query -> ?index:string -> ?comment:string -> string -> string
val run_queries :
Sphinx.conn ->
string list ->
[> `Err of string | `Ok of Sphinx.result ] list * string option
val query :
Sphinx.conn ->
Sphinx.query ->
?index:string ->
?comment:string -> string -> Sphinx.result * string option
val flush_attrs : Sphinx.conn -> int32
val update_attrs :
Sphinx.conn ->
string -> string list -> (int64 * int list) list -> int * string option
end