Provided by: libestraier-dev_1.4.13-12ubuntu1_amd64 bug

NAME

       estraier.h - the core API of Hyper Estraier

SYNOPSIS

       #include <estraier.h>
       #include <cabin.h>
       #include <stdlib.h>

API FOR DOCUMENT

       The API for documents aims to handle documents which were registered into the index.

       The  type  of  the  structure  `ESTDOC'  is  for abstraction of a document.  A document is
       composed of some attributes and some text sentences.  No entity of  `ESTDOC'  is  accessed
       directly,  but  it  is  accessed  by  the  pointer.  The term of document object means the
       pointer and its referent.  A document object is created by the function `est_doc_new'  and
       destroyed by `est_doc_delete'.  Every created document object should be destroyed.

       Target  documents  of  search  are to be registered in the database beforehand.  The ID is
       assigned to each registered document.   When  search,  they  can  be  retrieved  from  the
       database by their ID.  The encoding of attributes and text sentences should be UTF-8.

       The function `est_doc_new' is used in order to create a document object.

       ESTDOC *est_doc_new(void);
              The return value is an object of a document.

       The  function  `est_doc_new_from_draft'  is used in order to create a document object made
       from draft data.

       ESTDOC *est_doc_new_from_draft(const char *draft);
              `draft' specifies a string of draft data.  The return  value  is  an  object  of  a
              document.

       The function `est_doc_delete' is used in order to destroy a document object.

       void est_doc_delete(ESTDOC *doc);
              `doc' specifies a document object.

       The function `est_doc_add_attr' is used in order to add an attribute to a document object.

       void est_doc_add_attr(ESTDOC *doc, const char *name, const char *value);
              `doc'  specifies  a  document  object.   `name' specifies the name of an attribute.
              `value' specifies the value of the attribute.  If it is `NULL',  the  attribute  is
              removed.

       The  function  `est_doc_add_text' is used in order to add a sentence of text to a document
       object.

       void est_doc_add_text(ESTDOC *doc, const char *text);
              `doc' specifies a document object.  `text' specifies a sentence of text.

       The function `est_doc_add_hidden_text' is used in order to add  a  hidden  sentence  to  a
       document object.

       void est_doc_add_hidden_text(ESTDOC *doc, const char *text);
              `doc' specifies a document object.  `text' specifies a hidden sentence.

       The  function  `est_doc_set_keywords'  is  used  in order to attach keywords to a document
       object.

       void est_doc_set_keywords(ESTDOC *doc, CBMAP *kwords);
              `doc' specifies a document object.  `kwords' specifies a map  object  of  keywords.
              Keys  of  the  map  should  be  keywords of the document and values should be their
              scores in decimal string.  The map object is copied internally.

       The function `est_doc_set_score' is used in  order  to  set  the  substitute  score  of  a
       document object.

       void est_doc_set_score(ESTDOC *doc, int score);
              `doc'  specifies a document object.  `score' specifies the substitute score.  It it
              is negative, the substitute score setting is nullified.

       The function `est_doc_id' is used in order to get the ID number of a document object.

       int est_doc_id(ESTDOC *doc);
              `doc' specifies a document object.  The return  value  is  the  ID  number  of  the
              document object.  If the object has not been registered, -1 is returned.

       The  function  `est_doc_attr_names' is used in order to get a list of attribute names of a
       document object.

       CBLIST *est_doc_attr_names(ESTDOC *doc);
              `doc' specifies a document object.  The return  value  is  a  new  list  object  of
              attribute  names of the document object.  Because the object of the return value is
              opened with the function `cblistopen',  it  should  be  closed  with  the  function
              `cblistclose' if it is no longer in use.

       The  function  `est_doc_attr'  is  used  in  order  to  get the value of an attribute of a
       document object.

       const char *est_doc_attr(ESTDOC *doc, const char *name);
              `doc' specifies a document object.  `name' specifies the name of an attribute.  The
              return  value  is  the  value of the attribute or `NULL' if it does not exist.  The
              life duration of the returned string is synchronous with the one  of  the  document
              object.

       The  function `est_doc_texts' is used in order to get a list of sentences of the text of a
       document object.

       const CBLIST *est_doc_texts(ESTDOC *doc);
              `doc' specifies a document object.  The return value is a list object of  sentences
              of  the  text  of the document object.  The life duration of the returned object is
              synchronous with the one of the document object.

       The function `est_doc_cat_texts' is used in order to concatenate sentences of the text  of
       a document object.

       char *est_doc_cat_texts(ESTDOC *doc);
              `doc'  specifies  a document object.  The return value is concatenated sentences of
              the document object.  Because the region of the return value is allocated with  the
              `malloc'  call,  it  should  be released with the `free' call if it is no longer in
              use.

       The function `est_doc_keywords' is used in order to get attached keywords  of  a  document
       object.

       CBMAP *est_doc_keywords(ESTDOC *doc);
              `doc'  specifies  a  document object.  The return value is a map object of keywords
              and their scores in decimal string.  If no keyword is attached, `NULL' is returned.
              The  life  duration  of  the  returned  object  is  synchronous with the one of the
              document object.

       The function `est_doc_dump_draft' is used in order  to  dump  draft  data  of  a  document
       object.

       char *est_doc_dump_draft(ESTDOC *doc);
              `doc'  specifies a document object.  The return value is draft data of the document
              object.  Because the region of the return value  is  allocated  with  the  `malloc'
              call, it should be released with the `free' call if it is no longer in use.

       The function `est_doc_make_snippet' is used in order to make a snippet of the body text of
       a document object.

       char *est_doc_make_snippet(ESTDOC *doc, const CBLIST *words, int wwidth, int  hwidth,  int
       awidth);
              `doc'  specifies  a document object.  `word' specifies a list object of words to be
              highlight.  `wwidth' specifies whole width of the result.  `hwidth' specifies width
              of  strings  picked up from the beginning of the text.  `awidth' specifies width of
              strings picked up around each highlighted word.  The  return  value  is  a  snippet
              string  of  the  body text of the document object.  There are tab separated values.
              Each line is a string to be shown.  Though most lines have  only  one  field,  some
              lines  have two fields.  If the second field exists, the first field is to be shown
              with highlighted, and the second field means  its  normalized  form.   Because  the
              region  of  the  return  value  is  allocated  with the `malloc' call, it should be
              released with the `free' call if it is no longer in use.

API FOR SEARCH CONDITIONS

       The API for search conditions aims to specify search conditions given to the index.

       The type of the structure `ESTCOND' is for abstraction of search conditions.   A  unit  of
       search  conditions  is  composed of one search phrase, some attribute expressions, and one
       order expression.  No entity of `ESTCOND' is accessed directly, but it is accessed by  the
       pointer.   The  term  of condition object means the pointer and its referent.  A condition
       object is created by the  function  `est_cond_new'  and  destroyed  by  `est_cond_delete'.
       Every created condition object should be destroyed.

       Condition  objects  are  used  as  a  parameter  to search for documents registered in the
       database so that a list of IDs of corresponding documents are returned.   See  the  manual
       for the formats of expressions.  The encoding of conditional expressions should be UTF-8.

       The function `est_cond_new' is used in order to create a condition object.

       ESTCOND *est_cond_new(void);
              The return value is an object of search conditions.

       The function `est_cond_delete' is used in order to destroy a condition object.

       void est_cond_delete(ESTCOND *cond);
              `cond' specifies a condition object.

       The  function  `est_cond_set_phrase'  is  used  in  order  to  set  the search phrase to a
       condition object.

       void est_cond_set_phrase(ESTCOND *cond, const char *phrase);
              `cond' specifies a condition object.  `phrase' specifies a search phrase.

       The function `est_cond_add_attr' is used in order to add an expression for an attribute to
       a condition object.

       void est_cond_add_attr(ESTCOND *cond, const char *expr);
              `cond'  specifies  a  condition  object.   `expr'  specifies  an  expression for an
              attribute.

       The function `est_cond_set_order' is used in order to set the order of a condition object.

       void est_cond_set_order(ESTCOND *cond, const char *expr);
              `cond' specifies a condition object.  `expr' specifies an expression for the order.
              By default, the order is by score descending.

       The function `est_cond_set_max' is used in order to set the maximum number of retrieval of
       a condition object.

       void est_cond_set_max(ESTCOND *cond, int max);
              `cond' specifies a  condition  object.   `max'  specifies  the  maximum  number  of
              retrieval.  By default, the number of retrieval is not limited.

       The  function  `est_cond_set_skip' is used in order to set the number of skipped documents
       of a condition object.

       void est_cond_set_skip(ESTCOND *cond, int skip);
              `cond' specifies a condition object.  `skip' specifies the number of  documents  to
              be skipped in the search result.

       The  function  `est_cond_set_options'  is  used  in order to set options of retrieval of a
       condition object.

       void est_cond_set_options(ESTCOND *cond, int options);
              `cond' specifies a condition object.  `options'  specifies  options:  `ESTCONDSURE'
              specifies  that  it  checks every N-gram key, `ESTCONDUSUAL', which is the default,
              specifies that it checks N-gram keys with skipping one key, `ESTCONDFAST' skips two
              keys,  `ESTCONDAGITO'  skips  three  keys,  `ESTCONDNOIDF' specifies not to perform
              TF-IDF tuning, `ESTCONDSIMPLE' specifies to use simplified  phrase,  `ESTCONDROUGH'
              specifies  to  use  rustic  phrase,  `ESTCONDUNION'  specifies to use union phrase,
              `ESTCONDISECT' specifies to use intersection  phrase,  `ESTCONDSCFB'  specifies  to
              feed  back  scores  (only for debugging).  Each option can be specified at the same
              time by bitwise or.  If keys are skipped, though  search  speed  is  improved,  the
              relevance ratio grows less.

       The  function  `est_cond_set_auxiliary' is used in order to set permission to adopt result
       of the auxiliary index.

       void est_cond_set_auxiliary(ESTCOND *cond, int min);
              `cond' specifies a condition object.  `min' specifies the  minimum  hits  to  adopt
              result  of  the  auxiliary index.  If it is not more than 0, the auxiliary index is
              not used.  By default, it is 32.

       The function `est_cond_set_eclipse' is used in order to set the lower limit of  similarity
       eclipse.

       void est_cond_set_eclipse(ESTCOND *cond, double limit);
              `cond'  specifies  a  condition  object.   `limit'  specifies  the  lower  limit of
              similarity for documents to be eclipsed.  Similarity is between 0.0  and  1.0.   If
              the  limit is added by `ESTECLSIMURL', similarity is weighted by URL.  If the limit
              is `ESTECLSERV', similarity is  ignored  and  documents  in  the  same  server  are
              eclipsed.   If the limit is `ESTECLDIR', similarity is ignored and documents in the
              same directory are eclipsed.  If the limit is `ESTECLFILE', similarity  is  ignored
              and documents of the same file are eclipsed.

       The  function  `est_cond_set_distinct'  is  used in order to set the attribute distinction
       filter.

       void est_cond_set_distinct(ESTCOND *cond, const char *name);
              `cond' specifies a condition object.  `name' specifies the name of an attribute  to
              be  distinct.   If  this  filter  is  set,  candidates which have same value of the
              attribute is omitted.

       The function `est_set_cond_mask' is used in order to set  the  mask  of  targets  of  meta
       search.

       void est_cond_set_mask(ESTCOND *cond, int mask);
              `cond'  specifies  a condition object.  `mask' specifies a masking number.  1 means
              the first target, 2 means the second target, 4 means the third  target,  and  power
              values of 2 and their summation compose the mask.

API FOR DATABASE

       The API for database aims to handle the database of the index.

       The  type  of  the  structure `ESTDB' is for abstraction of access methods to database.  A
       database has inverted index, document data, and meta data.  One of  writer  or  reader  is
       selected  when  the connection is established.  No entity of `ESTDB' is accessed directly,
       but it is accessed by the pointer.  The term of database object means the pointer and  its
       referent.   A  database  object  is created by the function `est_db_open' and destroyed by
       `est_db_close'.  Every created database object should be destroyed.

       Errors with some operations are informed to by the function `est_db_error'.   The  meaning
       of each error code can be gotten as a string by the function `est_err_msg'.

       The following constant are defined for error codes.

       The function `est_err_msg' is used in order to get the string of an error code.

       const char *est_err_msg(int ecode);
              `ecode' specifies an error code.  The return value is the string of the error code.

       The function `est_db_open' is used in order to open a database.

       ESTDB *est_db_open(const char *name, int omode, int *ecp);
              `name'  specifies  the name of a database directory.  `omode' specifies open modes:
              `ESTDBWRITER'  as  a  writer,  `ESTDBREADER'  as  a  reader.   If   the   mode   is
              `ESTDBWRITER',  the following may be added by bitwise or: `ESTDBCREAT', which means
              it creates a new database if not exist, `ESTDBTRUNC', which means it creates a  new
              database regardless if one exists.  Both of `ESTDBREADER' and  `ESTDBWRITER' can be
              added to by bitwise or: `ESTDBNOLCK', which means it opens a database file  without
              file  locking,  or `ESTDBLCKNB', which means locking is performed without blocking.
              If `ESTDBNOLCK' is used, the application  is  responsible  for  exclusion  control.
              `ESTDBCREAT'  can  be  added  to  by  bitwise or: `ESTDBPERFNG', which means N-gram
              analysis is performed  against  European  text  also,  `ESTDBCHRCAT',  which  means
              character  category analysis is performed instead of N-gram analysis, `ESTDBSMALL',
              which means the index is tuned to register less than 50000 documents, `ESTDBLARGE',
              which means the index is tuned to register more than 300000 documents, `ESTDBHUGE',
              which  means  the  index  is  tuned  to  register  more  than  1000000   documents,
              `ESTDBHUGE2',  which  means  the  index  is  tuned  to  register  more than 5000000
              documents, `ESTDBHUGE3', which means the index  is  tuned  to  register  more  than
              10000000   documents,  `ESTDBSCVOID',  which  means  scores  are  stored  as  void,
              `ESTDBSCINT', which means scores are stored as 32-bit integer, `ESTDBSCASIS', which
              means  scores  are  stored  as-is  and  marked  not to be tuned when search.  `ecp'
              specifies the pointer to a variable to which  the  error  code  is  assigned.   The
              return value is a database object of the database or `NULL' if failure.

       The function `est_db_close' is used in order to close a database.

       int est_db_close(ESTDB *db, int *ecp);
              `db'  specifies  a  database  object.  `ecp' specifies the pointer to a variable to
              which the error code is assigned.  The return value is true if success, else it  is
              false.

       The  function  `est_db_error'  is  used  in order to get the last happened error code of a
       database.

       int est_db_error(ESTDB *db);
              `db' specifies a database object.  The return value is the last happened error code
              of the database.

       The  function  `est_db_fatal'  is  used  in  order to check whether a database has a fatal
       error.

       int est_db_fatal(ESTDB *db);
              `db' specifies a database object.  The return value is true  if  the  database  has
              fatal error, else it is false.

       The  function  `est_db_add_attr_index'  is  used in order to add an index for narrowing or
       sorting with document attributes.

       int est_db_add_attr_index(ESTDB *db, const char *name, int type);
              `db' specifies a database object connected as a writer.  `name' specifies the  name
              of   an   attribute.    `type'   specifies   the  data  type  of  attribute  index;
              `ESTIDXATTRSEQ' for multipurpose  sequential  access  method,  `ESTIDXATTRSTR'  for
              narrowing with attributes as strings, `ESTIDXATTRNUM' for narrowing with attributes
              as numbers.  The return value is true if success, else it is false.  Note that this
              function should be called before the first document is registered.

       The  function  `est_db_flush'  is  used  in  order  to flush index words in the cache of a
       database.

       int est_db_flush(ESTDB *db, int max);
              `db' specifies a database object  connected  as  a  writer.   `max'  specifies  the
              maximum  number  of  words  to be flushed.  If it not more than zero, all words are
              flushed.  The return value is true if success, else it is false.

       The function `est_db_sync' is  used  in  order  to  synchronize  updating  contents  of  a
       database.

       int est_db_sync(ESTDB *db);
              `db'  specifies  a database object connected as a writer.  The return value is true
              if success, else it is false.

       The function `est_db_optimize' is used in order to optimize a database.

       int est_db_optimize(ESTDB *db, int options);
              `db' specifies a database  object  connected  as  a  writer.   `options'  specifies
              options:  `ESTOPTNOPURGE'  to omit purging dispensable region of deleted documents,
              `ESTOPTNODBOPT' to omit optimization of the  database  files.   The  three  can  be
              specified  at  the  same  time by bitwise or.  The return value is true if success,
              else it is false.

       The function `est_db_merge' is used in order to merge another database.

       int est_db_merge(ESTDB *db, const char *name, int options);
              `db' specifies a database object connected as a writer.  `name' specifies the  name
              of  another database directory.  `options' specifies options: `ESTMGCLEAN' to clean
              up dispensable regions of the deleted  document.   The  return  value  is  true  if
              success,  else  it  is false.  Creation options of the two databases should be same
              entirely.  ID numbers of imported documents are changed within the sequence of  the
              desitination  database.   If  URIs of imported documents conflict ones of exsisting
              documents, existing documents are removed.

       The function `est_db_put_doc' is used in order to add a document to a database.

       int est_db_put_doc(ESTDB *db, ESTDOC *doc, int options);
              `db' specifies a database object connected as a writer.  `doc' specifies a document
              object.   The  document  object should have the URI attribute.  `options' specifies
              options: `ESTPDCLEAN' to clean up dispensable regions of the overwritten  document,
              `ESTPDWEIGHT'  to  weight  scores  statically  with score weighting attribute.  The
              return value is true if success, else it is false.  If the URI  attribute  is  same
              with an existing document in the database, the existing one is deleted.

       The function `est_db_out_doc' is used in order to remove a document from a database.

       int est_db_out_doc(ESTDB *db, int id, int options);
              `db'  specifies  a  database  object  connected as a writer.  `id' specifies the ID
              number of a registered document.   `options'  specifies  options:  `ESTODCLEAN'  to
              clean  up dispensable regions of the deleted document.  The return value is true if
              success, else it is false.

       The function `est_db_edit_doc' is used in order to edit attributes  of  a  document  in  a
       database.

       int est_db_edit_doc(ESTDB *db, ESTDOC *doc);
              `db' specifies a database object connected as a writer.  `doc' specifies a document
              object.  The return value is true if success, else it is false.  The ID can not  be
              changed.   If  the  URI  is  changed  and it overlaps the URI of another registered
              document, this function fails.

       The function `est_db_get_doc' is used in order to retrieve a document in a database.

       ESTDOC *est_db_get_doc(ESTDB *db, int id, int options);
              `db' specifies a database object.  `id' specifies the ID  number  of  a  registered
              document.    `options'  specifies  options:  `ESTGDNOATTR'  to  ignore  attributes,
              `ESTGDNOTEXT' to ignore the body text, `ESTGDNOKWD' to ignore  keywords.   The  two
              can  be  specified  at the same time by bitwise or.  The return value is a document
              object.  It should be deleted with `est_doc_delete' if it is no longer in use.   On
              error, `NULL' is returned.

       The  function `est_db_get_doc_attr' is used in order to retrieve the value of an attribute
       of a document in a database.

       char *est_db_get_doc_attr(ESTDB *db, int id, const char *name);
              `db' specifies a database object.  `id' specifies the ID  number  of  a  registered
              document.   `name'  specifies  the  name  of an attribute.  The return value is the
              value of the attribute or `NULL' if it does not exist.  Because the region  of  the
              return  value  is  allocated with the `malloc' call, it should be released with the
              `free' call if it is no longer in use.

       The function `est_db_uri_to_id' is used in order to get the ID of a document specified  by
       URI.

       int est_db_uri_to_id(ESTDB *db, const char *uri);
              `db'  specifies  a  database  object.   `uri'  specifies  the  URI  of a registered
              document.  The return value is the ID of the document.  On error, -1 is returned.

       The function `est_db_name' is used in order to get the name of a database.

       const char *est_db_name(ESTDB *db);
              `db' specifies a database object.  The return value is the name  of  the  database.
              The  life  duration  of  the  returned  string  is  synchronous with the one of the
              database object.

       The function `est_db_doc_num' is used in order  to  get  the  number  of  documents  in  a
       database.

       int est_db_doc_num(ESTDB *db);
              `db'  specifies  a database object.  The return value is the number of documents in
              the database.

       The function `est_db_word_num' is used in order to get the number of  unique  words  in  a
       database.

       int est_db_word_num(ESTDB *db);
              `db'  specifies  a database object.  The return value is the number of unique words
              in the database.

       The function `est_db_size' is used in order to get the size of a database.

       double est_db_size(ESTDB *db);
              `db' specifies a database object.  The return value is the size of the database.

       The function `est_db_search'  is  used  in  order  to  search  a  database  for  documents
       corresponding a condition.

       int *est_db_search(ESTDB *db, ESTCOND *cond, int *nump, CBMAP *hints);
              `db'  specifies  a  database  object.  `cond' specifies a condition object.  `nump'
              specifies the pointer to a variable to which the number of elements in  the  result
              is  assigned.   `hints'  specifies  a map object into which the number of documents
              corresponding to each word is stored.  If a word is in a  negative  condition,  the
              number  is negative.  The element whose key is an empty string specifies the number
              of whole result.  If it is `NULL', it is not used.  The return value  is  an  array
              whose elements are ID numbers of corresponding documents.  This function does never
              fail.  Even if no document corresponds or  an  error  occurs,  an  empty  array  is
              returned.   Because  the  region of the return value is allocated with the `malloc'
              call, it should be released with the `free' call if it is no longer in use.

       Search plural databases for documents corresponding a condition.

       int *est_db_search_meta(ESTDB **dbs, int dbnum, ESTCOND *cond, int *nump, CBMAP *hints);
              `dbs' specifies an array whose elements are database  objects.   `dbnum'  specifies
              the  number of elements of the array.  `cond' specifies a condition object.  `nump'
              specifies the pointer to a variable to which the number of elements in  the  result
              is  assigned.   `hints'  specifies  a map object into which the number of documents
              corresponding to each word is stored.  If a word is in a  negative  condition,  the
              number  is negative.  The element whose key is an empty string specifies the number
              of whole result.  If it is `NULL', it is not used.  The return value  is  an  array
              whose  elements  are  indexes  of  container  databases  and  ID numbers of in each
              database alternately.   This  function  does  never  fail.   Even  if  no  document
              corresponds  or an error occurs, an empty array is returned.  Because the region of
              the return value is allocated with the `malloc' call, it should  be  released  with
              the `free' call if it is no longer in use.

       The function `est_db_scan_doc' is used in order to check whether a document object matches
       the phrase of a search condition object definitely.

       int est_db_scan_doc(ESTDB *db, ESTDOC *doc, ESTCOND *cond);
              `db' specifies a database object.   `doc'  specifies  a  document  object.   `cond'
              specifies  a  search  condition  object.   The return value is true if the document
              matches the phrase of the condition object definitely, else it is false.

       The function `est_db_set_cache_size' is used in order to set the maximum size of the cache
       memory of a database.

       void est_db_set_cache_size(ESTDB *db, size_t size, int anum, int tnum, int rnum);
              `db'  specifies  a database object.  `size' specifies the maximum size of the index
              cache.  By default, it is 64MB.  If  it  is  negative,  the  current  size  is  not
              changed.   `anum'  specifies  the  maximum  number  of  cached records for document
              attributes.  By default, it is 8192.  If it is negative, the current  size  is  not
              changed.  `tnum' specifies the maximum number of cached records for document texts.
              By default, it is 1024.  If it is  negative,  the  current  size  is  not  changed.
              `rnum'  specifies  the maximum number of cached records for occurrence results.  By
              default, it is 256.  If it is negative, the current size is not changed.

PARALLELING

       Databases of Hyper Estraier are protected by file locking.  While a writer is connected to
       a  database, neither readers nor writers can be connected.  While a reader is connected to
       a database, other readers can be connect, but writers can not.

       If you use multi thread, it is suggested to use the MT-safe API of Hyper Estraier.  It  is
       a  wrapper  to  make  the  core  API  thread-safe.   As  the MT-safe API provides the same
       functions as with the core API, the following is different.

AUTHOR

       Hyper Estraier is written by Mikio Hirabayashi.  You can contact the author by  e-mail  to
       <mikio@users.sourceforge.net>.  Any suggestion or bug report is welcome to the author.

ACKNOWLEDGEMENTS

       Hyper  Estraier  was  developed  under  management  by  Fumitoshi  Ukai  and  supports  by
       Exploratory Software Project of Information-technology Promotion Agency, Japan (IPA).

COPYRIGHT

       Copyright (C) 2004-2007 Mikio Hirabayashi

       Hyper Estraier is free software; you can redistribute it and/or modify it under the  terms
       of  the  GNU  Lesser  General Public License as published by the Free Software Foundation;
       either version 2 of the License, or any later version.

       Hyper Estraier is distributed in the  hope  that  it  will  be  useful,  but  WITHOUT  ANY
       WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
       PURPOSE.  See the GNU Lesser General Public License for more details.

       You should have received a copy of the GNU Lesser General Public License along with  Hyper
       Estraier; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
       Boston, MA 02111-1307 USA.

SEE ALSO

       estconfig(1), estcmd(1), estmaster(1), estcall(1), estwaver(1), cabin(3), estnode(3)

       Please see http://hyperestraier.sourceforge.net/pguide-en.html for detail.