Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ESTNODE(3)			 Hyper Estraier 		      ESTNODE(3)

NAME
     estnode.h - the node API of Hyper Estraier

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

API FOR INITIALIZING
     For  preparation to use the node API, initialize the network environment at
     the beginning of a program.  Moreover, the environment should be  freed  at
     the end of the program.

     The function `est_init_net_env' is used in order to initialize the network-
     ing environment.

     int est_init_net_env(void);
	    The return value is true if success, else it is false.  As it is al-
	    lowable  to  call this function multiple times, it is needed to call
	    the function `est_free_net_env' at the same frequency.

     The function `est_free_net_env' is used in order to free the networking en-
     vironment.

     void est_free_net_env(void);
	    There is no parameter and no return value.

API FOR NODES
     The type of the structure `ESTNODE' is for abstraction of connection  to  a
     node.   A	node  has  its	own URL.  No entity of `ESTNODE' is accessed di-
     rectly, but it is accessed by the pointer.  The term of node connection ob-
     ject means the pointer and its referent.  A node connection object is  cre-
     ated  by  the  function  `est_node_new' and destroyed by `est_node_delete'.
     Every created node connection object should be destroyed.

     The function `est_node_new' is used in order to create  a	node  connection
     object.

     ESTNODE *est_node_new(const char *url);
	    `url'  specifies the URL of a node.  The return value is a node con-
	    nection object.

     The function `est_node_delete' is used in order to destroy a  node  connec-
     tion object.

     void est_node_delete(ESTNODE *node);
	    `node' specifies a node connection object.

     The  function `est_node_set_proxy' is used in order to set the proxy infor-
     mation of a node connection object.

     void est_node_set_proxy(ESTNODE *node, const char *host, int port);
	    `node' specifies a node connection	object.   `host'  specifies  the
	    host  name	of  a proxy server.  `port' specifies the port number of
	    the proxy server.

     The function `est_node_set_timeout' is used in order to set  timeout  of  a
     connection.

     void est_node_set_timeout(ESTNODE *node, int sec);
	    `node'  specifies a node connection object.  `sec' specifies timeout
	    of the connection in seconds.

     The function `est_node_set_auth' is used in order to set the authentication
     information of a node connection object.

     void est_node_set_auth(ESTNODE *node, const char *name, const char
     *passwd);
	    `node' specifies a node connection	object.   `name'  specifies  the
	    name  of authentication.  `passwd' specifies the password of the au-
	    thentication.

     The function `est_node_status' is used in order to get the status	code  of
     the last request of a node.

     int est_node_status(ESTNODE *node);
	    `node'  specifies a node connection object.  The return value is the
	    status code of the last request of the node.  -1  means  failure  of
	    connection.

     The  function `est_node_sync' is used in order to synchronize updating con-
     tents of the database of a node.

     int est_node_sync(ESTNODE *node);
	    `node' specifies a node connection object.	The return value is true
	    if success, else it is false.

     The function `est_node_optimize' is used in order to optimize the	database
     of a node.

     int est_node_optimize(ESTNODE *node);
	    `node' specifies a node connection object.	The return value is true
	    if success, else it is false.

     The  function  `est_node_put_doc'	is  used in order to add a document to a
     node.

     int est_node_put_doc(ESTNODE *node, ESTDOC *doc);
	    `node' specifies a node connection object.	`doc' specifies a  docu-
	    ment  object.   The  document  object should have the URI attribute.
	    The return value is true if success, else it is false.  If	the  URI
	    attribute  is same with an existing document in the node, the exist-
	    ing one is deleted.

     The function `est_node_out_doc' is used in order to remove a document  from
     a node.

     int est_node_out_doc(ESTNODE *node, int id);
	    `node'  specifies  a  node connection object.  `id' specifies the ID
	    number of a registered document.  The return value is true	if  suc-
	    cess, else it is false.

     The  function  `est_node_out_doc_by_uri' is used in order to remove a docu-
     ment specified by URI from a node.

     int est_node_out_doc_by_uri(ESTNODE *node, const char *uri);
	    `node' specifies a node connection object.	`uri' specifies the  URI
	    of a registered document.  The return value is true if success, else
	    it is false.

     The  function  `est_node_edit_doc' is used in order to edit attributes of a
     document in a node.

     int est_node_edit_doc(ESTNODE *node, ESTDOC *doc);
	    `node' specifies a node connection object.	`doc' specifies a  docu-
	    ment 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_node_get_doc' is used in order to retrieve a document  in
     a node.

     ESTDOC *est_node_get_doc(ESTNODE *node, int id);
	    `node'  specifies  a  node connection object.  `id' specifies the ID
	    number of a registered document.  The return value is a document ob-
	    ject.  It should be deleted with `est_doc_delete' if it is no longer
	    in use.  On error, `NULL' is returned.

     The function `est_node_get_doc_by_uri' is used in order to retrieve a docu-
     ment specified by URI in a node.

     ESTDOC *est_node_get_doc_by_uri(ESTNODE *node, const char *uri);
	    `node' specifies a node connection object.	`uri' specifies the  URI
	    of	a  registered  document.  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_node_get_doc_attr' is used in order to retrieve the value
     of an attribute of a document in a node.

     char *est_node_get_doc_attr(ESTNODE *node, int id, const char *name);
	    `node'  specifies  a  node connection 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 al-
	    located  with  the	`malloc'  call,  it  should be released with the
	    `free' call if it is no longer in use.

     The function `est_node_get_doc_attr_by_uri' is used in  order  to	retrieve
     the value of an attribute of a document specified by URI in a node.

     char *est_node_get_doc_attr_by_uri(ESTNODE *node, const char *uri, const
     char *name);
	    `node'  specifies a node connection object.  `uri' specifies the URI
	    of a registered document.  `name'  specifies  the  name  of  an  at-
	    tribute.   The  return value is the value of the attribute or `NULL'
	    if it does not exist.  Because the region of the return value is al-
	    located with the `malloc' call,  it  should  be  released  with  the
	    `free' call if it is no longer in use.

     The  function `est_node_etch_doc' is used in order to extract keywords of a
     document.

     CBMAP *est_node_etch_doc(ESTNODE *node, int id);
	    `node' specifies a node connection object.	`id'  specifies  the  ID
	    number  of a registered document.  The return value is a new map ob-
	    ject of keywords and their scores in decimal string or `NULL' on er-
	    ror.  Because the object of the return  value  is  opened  with  the
	    function  `cbmapopen', it should be closed with the function `cbmap-
	    close' if it is no longer in use.

     The function `est_node_etch_doc_by_uri' is used in order  to  extract  key-
     words of a document specified by URI in a node.

     CBMAP *est_node_etch_doc_by_uri(ESTNODE *node, const char *uri);
	    `node'  specifies a node connection object.  `uri' specifies the URI
	    of a registered document.  The return value is a new map  object  of
	    keywords and their scores in decimal string or `NULL' on error.  Be-
	    cause  the	object	of  the return value is opened with the function
	    `cbmapopen', it should be closed with the function	`cbmapclose'  if
	    it is no longer in use.

     The function `est_node_uri_to_id' is used in order to get the ID of a docu-
     ment specified by URI.

     int est_node_uri_to_id(ESTNODE *node, const char *uri);
	    `node'  specifies a node connection object.  `uri' specifies the URI
	    of a registered document.  The return value is the ID of  the  docu-
	    ment.  On error, -1 is returned.

     The function `est_node_name' is used in order to get the name of a node.

     const char *est_node_name(ESTNODE *node);
	    `node'  specifies a node connection object.  The return value is the
	    name of the node.  On error, `NULL' is returned.  The life	duration
	    of	the  returned string is synchronous with the one of the node ob-
	    ject.

     The function `est_node_label' is used in order to get the label of a node.

     const char *est_node_label(ESTNODE *node);
	    `node' specifies a node connection object.	The return value is  the
	    label of the node.	On error, `NULL' is returned.  The life duration
	    of	the  returned string is synchronous with the one of the node ob-
	    ject.

     The function `est_node_doc_num' is used in order to get the number of docu-
     ments in a node.

     int est_node_doc_num(ESTNODE *node);
	    `node' specifies a node connection object.	The return value is  the
	    number of documents in the node.  On error, -1 is returned.

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

     int est_node_word_num(ESTNODE *node);
	    `node' specifies a node connection object.	The return value is  the
	    number of unique words in the node.  On error, -1 is returned.

     The  function `est_node_size' is used in order to get the size of the data-
     base of a node.

     double est_node_size(ESTNODE *node);
	    `node' specifies a node connection object.	The return value is  the
	    size of the database of the node.  On error, -1.0 is returned.

     The function `est_node_cache_usage' is used in order to get the usage ratio
     of the cache of a node.

     double est_node_cache_usage(ESTNODE *node);
	    `node'  specifies a node connection object.  The return value is the
	    usage ratio of the cache of the node.  On error, -1.0 is returned.

     The function `est_node_admins' is used in order to get a list of  names  of
     administrators of a node.

     const CBLIST *est_node_admins(ESTNODE *node);
	    `node'  specifies  a  node connection object.  The return value is a
	    list object of names of administrators.  On  error,  `NULL'  is  re-
	    turned.   The  life  duration  of the returned object is synchronous
	    with the one of the node object.

     The function `est_node_users' is used in order to get a list  of  names  of
     users of a node.

     const CBLIST *est_node_users(ESTNODE *node);
	    `node'  specifies  a  node connection object.  The return value is a
	    list object of names of users.  On error, `NULL' is  returned.   The
	    life  duration of the returned object is synchronous with the one of
	    the node object.

     The function `est_node_links' is used in order to get a list of expressions
     of links of a node.

     const CBLIST *est_node_links(ESTNODE *node);
	    `node' specifies a node connection object.	The return  value  is  a
	    list  object  of expressions of links.  Each element is a TSV string
	    and has three fields of the URL, the label, and the score.	 On  er-
	    ror,  `NULL'  is returned.	The life duration of the returned object
	    is synchronous with the one of the node object.

     The function `est_node_search' is used in order to search a node for  docu-
     ments corresponding a condition.

     ESTNODERES *est_node_search(ESTNODE *node, ESTCOND *cond, int depth);
	    `node'  specifies a node connection object.  `cond' specifies a con-
	    dition object.  `depth' specifies the depth of meta search.  The re-
	    turn value is a node result  object.   It  should  be  deleted  with
	    `est_noderes_delete' if it is no longer in use.  On error, `NULL' is
	    returned.

     The  function `est_node_set_snippet_width' is used in order to set width of
     snippet in the result from a node.

     void est_node_set_snippet_width(ESTNODE *node, int wwidth, int hwidth, int
     awidth);
	    `node' specifies a node connection object.	`wwidth' specifies whole
	    width of a snippet.  By default, it is 480.  If it is 0, no  snippet
	    is sent. If it is negative, whole body text is sent instead of snip-
	    pet.   `hwidth' specifies width of strings picked up from the begin-
	    ning of the text.  By default, it is 96.  If it is negative  0,  the
	    current setting is not changed.  `awidth' specifies width of strings
	    picked up around each highlighted word. By default, it is 96.  If it
	    is negative, the current setting is not changed.

     The  function `est_node_set_user' is used in order to manage a user account
     of a node.

     int est_node_set_user(ESTNODE *node, const char *name, int mode);
	    `node' specifies a node connection	object.   `name'  specifies  the
	    name  of  a  user.	`mode' specifies the operation mode.  0 means to
	    delete the account.  1 means to set the account as an administrator.
	    2 means to set the account as a guest.  The return value is true  if
	    success, else it is false.

     The  function  `est_node_set_link'  is  used in order to manage a link of a
     node.

     int est_node_set_link(ESTNODE *node, const char *url, const char *label,
     int credit);
	    `node' specifies a node connection object.	`url' specifies the  URL
	    of	the  target  node of a link.  `label' specifies the label of the
	    link.  `credit' specifies the credit of the link.  If  it  is  nega-
	    tive,  the	link  is  removed.  The return value is true if success,
	    else it is false.

API FOR SEARCH RESULTS OF NODES
     The type of the structure `ESTNODERES' is for abstraction of search  result
     from a node.  A result is composed of a list of corresponding documents and
     information  of hints.  No entity of `ESTNODERES' is accessed directly, but
     it is accessed by the pointer.  The term of node result  object  means  the
     pointer  and its referent.  A node result object is created by the function
     `est_node_search' and destroyed  by  `est_noderes_delete'.   Every  created
     node connection object should be destroyed.

     The  type	of the structure `ESTRESDOC' is for abstraction of a document in
     search result.  A result document is composed  of	some  attributes  and  a
     snippet.  No entity of `ESTRESDOC' is accessed directly, but it is accessed
     by  the  pointer.	The term of result document object means the pointer and
     its  referent.   A  result  document  object  is  gotten  by  the	function
     `est_noderes_get_doc'  but it should not be destroyed because the entity is
     managed inside the node result object.

     The function `est_noderes_delete' is used in order to delete a node  result
     object.

     void est_noderes_delete(ESTNODERES *nres);
	    `nres' specifies a node result object.

     The  function  `est_noderes_hints' is used in order to get a map object for
     hints of a node result object.

     CBMAP *est_noderes_hints(ESTNODERES *nres);
	    `nres' specifies a node result object.  The return value  is  a  map
	    object  for  hints.   Keys	of the map are "VERSION", "NODE", "HIT",
	    "HINT#n",  "DOCNUM",  "WORDNUM",  "TIME",  "TIME#n",  "LINK#n",  and
	    "VIEW".   The  life  duration  of the returned object is synchronous
	    with the one of the node result object.

     The function `est_noderes_eclipse' is used in order to eclipse similar doc-
     uments of a node result object.

     void est_noderes_eclipse(ESTNODERES *nres, int num, double limit);
	    `nres' specifies a node result object.  `num' specifies  the  number
	    of	documents to be shown.	If it is not more than 0, eclipse is un-
	    done.  `limit' specifies the lower limit of similarity for documents
	    to be eclipsed.  Similarity is between 0.0 and 1.0.

     The function `est_noderes_doc_num' is used in order to get  the  number  of
     documents in a node result object.

     int est_noderes_doc_num(ESTNODERES *nres);
	    `nres' specifies a node result object.  The return value is the num-
	    ber of documents in a node result object.

     The function `est_noderes_get_doc' is used in order to refer a result docu-
     ment object in a node result object.

     ESTRESDOC *est_noderes_get_doc(ESTNODERES *nres, int index);
	    `nres'  specifies a node result object.  `index' specifies the index
	    of a document.  The return value is  a  result  document  object  or
	    `NULL'  if `index' is equal to or more than the number of documents.
	    The life duration of the returned object is synchronous with the one
	    of the node result object.

     The function `est_resdoc_uri' is used in order to get the URI of  a  result
     document object.

     const char *est_resdoc_uri(ESTRESDOC *rdoc);
	    `rdoc'  specifies a result document object.  The return value is the
	    URI of the result document object.	The life  duration  of	the  re-
	    turned string is synchronous with the one of the result document ob-
	    ject.

     The  function `est_resdoc_attr_names' is used in order to get a list of at-
     tribute names of a result document object.

     CBLIST *est_resdoc_attr_names(ESTRESDOC *rdoc);
	    `rdoc' specifies a result document object.	The return  value  is  a
	    new  list  object  of attribute names of the result 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_resdoc_attr' is used in order to get the value of an at-
     tribute of a result document object.

     const char *est_resdoc_attr(ESTRESDOC *rdoc, const char *name);
	    `rdoc' specifies a result document	object.   `name'  specifies  the
	    name  of  an  attribute.   The  return value is the value of the at-
	    tribute or `NULL' if it does not exist.  The life  duration  of  the
	    returned  string  is synchronous with the one of the result document
	    object.

     The function `est_resdoc_snippet' is used in order to get the snippet of  a
     result document object.

     const char *est_resdoc_snippet(ESTRESDOC *rdoc);
	    `rdoc'  specifies  a  result document object.  The return value is a
	    string of the snippet of the result 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  sec-
	    ond  field	exists, the first field is to be shown with highlighted,
	    and the second field means its normalized form.  The  life	duration
	    of	the  returned  string  is synchronous with the one of the result
	    document object.

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

     const char *est_resdoc_keywords(ESTRESDOC *rdoc);
	    `rdoc'  specifies  a  result document object.  The return value is a
	    string of serialized keywords of the result document object.   There
	    are  tab  separated  values.   Keywords and their scores come alter-
	    nately.  The life duration of the  returned  string  is  synchronous
	    with the one of the result document object.

     The function `est_resdoc_shadows' is used in order to get an array of docu-
     ments eclipsed by a result document object.

     ESTRESDOC **est_resdoc_shadows(ESTRESDOC *rdoc, int *np);
	    `rdoc'  specifies  a  result  document  object.   `np' specifies the
	    pointer to a variable to which the number of elements of the  return
	    value  is assigned.  The return value is an array of eclipsed result
	    document objects.  The life duration of the returned array	and  its
	    elements is synchronous with the one of the result document object.

     The  function `est_resdoc_similarity' is used in order to get similarity of
     an eclipsed result document object.

     double est_resdoc_similarity(ESTRESDOC *rdoc);
	    `rdoc' specifies a result document object.	The return value is sim-
	    ilarity of the result document object to the front document or  -1.0
	    if it is not eclipsed.

PARALLELING
     Each  of  node connection objects, node result objects, and result document
     objects can not be shared by threads.  If you use multi threads, make  each
     thread have its own objects.  If the precondition is kept, functions of the
     node API can be treated as thread-safe functions.

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  sup-
     ports  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 WITH-
     OUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY  or
     FITNESS  FOR  A  PARTICULAR PURPOSE.  See the GNU Lesser General Public Li-
     cense 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),
     estraier(3)

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

Man Page			   2007-03-06			      ESTNODE(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=estnode&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help