/[pgestraier]/trunk/README.pod
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/README.pod

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 33 by dpavlin, Wed Jul 6 16:35:51 2005 UTC revision 51 by dpavlin, Tue May 9 22:55:42 2006 UTC
# Line 19  software already installed before you tr Line 19  software already installed before you tr
19    
20  =item *  =item *
21    
22  PostgreSQL (tested with version 7.4.8) with development libraries  PostgreSQL (tested with versions 7.4 and 8.0) with development libraries
23    
24  =item *  =item *
25    
26  Hyper Estraier (tested with versions 0.3.9 and 0.3.10)  Hyper Estraier (tested with 0.5.0-1.0.0+, version newer than 0.9.6 are
27    recommended)
28    
29  =back  =back
30    
# Line 41  perl modules C<DBI>, C<DBD::Pg>, C<Test: Line 42  perl modules C<DBI>, C<DBD::Pg>, C<Test:
42    
43  =item *  =item *
44    
45  C<trivia.list.gz> from Internet Movie Database in data/ directory  C<trivia.list.gz> from Internet Movie Database in C<data/> directory
46    
47  =item *  =item *
48    
49  database "test" with permissions for current user  PostgreSQL database C<test> with permissions for current user
50    
51    =item *
52    
53    Hyper Estraier node C<trivia> with permissions for C<admin> user.
54    
55  =back  =back
56    
# Line 54  If you have all that, you should be able Line 59  If you have all that, you should be able
59    make    make
60    
61  and see sample results. You will be asked your password once (via sudo) to  and see sample results. You will be asked your password once (via sudo) to
62  install pgest.so shared library in system-wide location so that PostgreSQL  install C<pgest.so> shared library in system-wide location so that PostgreSQL
63  could access it.  could access it.
64    
65  Next, you will have to create test index. You have two options:  Next, you will have to create test index. You have two options:
# Line 67  This will create temporary files on disk Line 72  This will create temporary files on disk
72    make index    make index
73    cd ..    cd ..
74    
75    B<Warning:> this method is incomplete and won't create node index needed
76    to run last examples in C<test.sql> correctly. Solution is simple: either
77    symlink your newly created index to Hyper Estraier C<_node> directory or
78    create node and fill re-create index using C<estcall>.
79    
80  =head2 Create index using Hyper Estraier perl bindings  =head2 Create index using Hyper Estraier perl bindings
81    
82  For this, you will have to install perl bindings from  Perl bindings for Hyper Estraier are available at
83    
84  L<http://tokuhirom.dnsalias.org/~tokuhirom/archive/hyper_estraier_wrappers-0.0.6.tar.gz>  L<http://hyperestraier.sourceforge.net/binding/>
85    
86  If you installed bindings as documented in README file, you can issue  However, they don't support node API (yet), so you will have to use
87  following commands to create index about three times faster than using  my modified version which is available at
88  estcmd:  L<http://svn.rot13.org/> in C<hyperestraier_wrappers> repository.
89    
90    If you installed bindings as documented in README file, you can use
91    perl binding to create index about three times faster than using C<estcmd>
92    (to be fair, I must say that creation of intermediate files take most time,
93    not indexing).
94    
95    However, you will first need to create node I<trivia> using Hyper Estraier's
96    administration interface at L<http://localhost:1978/masterui>. You will also
97    need user C<admin> with password C<admin> because those values are
98    hard-coded in C<indexer.pl>. If you want to use different user on index
99    name, feel free to change script.
100    
101    cd data    cd data
102    make perl    make perl
# Line 87  To run tests (which require that you hav Line 108  To run tests (which require that you hav
108    
109  See also included file test.sql for more examples of usage.  See also included file test.sql for more examples of usage.
110    
111    =head1 Usage of pgest from SQL
112    
113    C<pgest> PostgreSQL function has two different prototypes (number of arguments) depending on usage.
114    
115            SELECT
116                    -- columns to return (defined later)
117                    id,title,size
118            FROM pgest(
119                    -- path to index OR URL to node, user-name and password
120                    -- you will need JUST ONE of following two lines, depending
121                    -- on your usage described below, for direct access
122                    '/full/path/to/casket',
123                    -- or for node API specify node URI, login, password
124                    -- and depth of search
125                    'http://localhost:1978/node/trivia', 'admin', 'admin', 42,
126                    -- query
127                    'blade runner',
128                    -- additional attributes, use NULL or '' to disable
129                    -- multiple attributes conditions can be separated by {{!}}
130                    '@title ISTRINC blade',
131                    -- order results by
132                    '@title STRA',
133                    -- limit, use NULL or 0 to disable
134                    null,
135                    -- offset, use NULL or 0 to disable
136                    null,
137                    -- attributes to return as columns
138                    ARRAY['@id','@title','@size']
139            ) AS (
140                    -- specify names and types of returned attributes
141                    id text, title text, size text
142            );
143    
144    =head2 Accessing database directly
145    
146    If you want to access database directly (without running C<estmaster> process), first argument is full path to database file.
147    
148    Have in mind that C<postgres> user under which PostgreSQL is running must
149    have read permission on Hyper Estraier database files.
150    
151    This will work a bit faster on really small indexes. However, when your
152    index grows bigger, you might consider using node API to remove overhead of
153    database opening on each query.
154    
155    B<Please note that direct access to database is depriciated.>
156    
157    =head2 Using index via C<estmaster> server process
158    
159    If first argument is URL to node (like C<http://localhost:1978/node/trivia>)
160    and there are two additional parameters (user-name and password) after it,
161    C<pgest> will use node API and access index through C<estmaster> process which should be running on (local or remote) machine.
162    
163    This will remove database opening overhead, at a cost of additional network
164    traffic. However, you can have Hyper Estraier C<estmaster> process running on
165    different machine or update index while doing searches, so benefits of this
166    approach are obvious.
167    
168  =head1 Who wrote this?  =head1 Who wrote this?
169    
170  Hyper Estraier is written by Mikio Hirabayashi.  Hyper Estraier is written by Mikio Hirabayashi.
171    
172    Perl bindings for Hyper Estraier are written by MATSUNO Tokuhiro.
173    
174  PostgreSQL is written by hackers calling themselves PostgreSQL Global  PostgreSQL is written by hackers calling themselves PostgreSQL Global
175  Development Group.  Development Group.
176    

Legend:
Removed from v.33  
changed lines
  Added in v.51

  ViewVC Help
Powered by ViewVC 1.1.26