ruby_odeum 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/COPYING +504 -0
- data/LICENSE +504 -0
- data/README +50 -0
- data/bin/odeum_mgr +106 -0
- data/doc/rdoc/classes/Odeum.html +235 -0
- data/doc/rdoc/classes/Odeum.src/M000010.html +25 -0
- data/doc/rdoc/classes/Odeum.src/M000011.html +22 -0
- data/doc/rdoc/classes/Odeum.src/M000012.html +27 -0
- data/doc/rdoc/classes/Odeum.src/M000013.html +27 -0
- data/doc/rdoc/classes/Odeum.src/M000014.html +28 -0
- data/doc/rdoc/classes/Odeum/Document.html +382 -0
- data/doc/rdoc/classes/Odeum/Document.src/M000040.html +25 -0
- data/doc/rdoc/classes/Odeum/Document.src/M000041.html +22 -0
- data/doc/rdoc/classes/Odeum/Document.src/M000042.html +23 -0
- data/doc/rdoc/classes/Odeum/Document.src/M000043.html +23 -0
- data/doc/rdoc/classes/Odeum/Document.src/M000044.html +24 -0
- data/doc/rdoc/classes/Odeum/Document.src/M000045.html +32 -0
- data/doc/rdoc/classes/Odeum/Document.src/M000046.html +22 -0
- data/doc/rdoc/classes/Odeum/Document.src/M000047.html +22 -0
- data/doc/rdoc/classes/Odeum/Document.src/M000048.html +22 -0
- data/doc/rdoc/classes/Odeum/Document.src/M000049.html +22 -0
- data/doc/rdoc/classes/Odeum/Document.src/M000050.html +24 -0
- data/doc/rdoc/classes/Odeum/Document.src/M000051.html +27 -0
- data/doc/rdoc/classes/Odeum/Index.html +662 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000015.html +46 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000016.html +33 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000017.html +35 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000018.html +23 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000019.html +22 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000020.html +22 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000021.html +22 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000022.html +22 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000023.html +22 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000024.html +29 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000025.html +23 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000026.html +24 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000027.html +23 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000028.html +26 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000029.html +24 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000030.html +20 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000031.html +22 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000032.html +22 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000033.html +22 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000034.html +22 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000035.html +20 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000036.html +20 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000037.html +22 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000038.html +22 -0
- data/doc/rdoc/classes/Odeum/Index.src/M000039.html +22 -0
- data/doc/rdoc/classes/OdeumTest.html +257 -0
- data/doc/rdoc/classes/OdeumTest.src/M000001.html +18 -0
- data/doc/rdoc/classes/OdeumTest.src/M000002.html +19 -0
- data/doc/rdoc/classes/OdeumTest.src/M000003.html +27 -0
- data/doc/rdoc/classes/OdeumTest.src/M000004.html +25 -0
- data/doc/rdoc/classes/OdeumTest.src/M000005.html +44 -0
- data/doc/rdoc/classes/OdeumTest.src/M000006.html +20 -0
- data/doc/rdoc/classes/OdeumTest.src/M000007.html +39 -0
- data/doc/rdoc/classes/OdeumTest.src/M000008.html +59 -0
- data/doc/rdoc/classes/OdeumTest.src/M000009.html +41 -0
- data/doc/rdoc/created.rid +1 -0
- data/doc/rdoc/files/COPYING.html +756 -0
- data/doc/rdoc/files/LICENSE.html +756 -0
- data/doc/rdoc/files/README.html +175 -0
- data/doc/rdoc/files/ext/odeum_index/odeum_index_c.html +101 -0
- data/doc/rdoc/files/test/test_odeum_rb.html +109 -0
- data/doc/rdoc/fr_class_index.html +30 -0
- data/doc/rdoc/fr_file_index.html +31 -0
- data/doc/rdoc/fr_method_index.html +77 -0
- data/doc/rdoc/index.html +24 -0
- data/doc/rdoc/rdoc-style.css +208 -0
- data/ext/odeum_index/cabin.c +2735 -0
- data/ext/odeum_index/cabin.h +1040 -0
- data/ext/odeum_index/curia.c +1114 -0
- data/ext/odeum_index/curia.h +430 -0
- data/ext/odeum_index/depot.c +1910 -0
- data/ext/odeum_index/depot.h +439 -0
- data/ext/odeum_index/extconf.rb +10 -0
- data/ext/odeum_index/myconf.c +668 -0
- data/ext/odeum_index/myconf.h +523 -0
- data/ext/odeum_index/odeum.c +1743 -0
- data/ext/odeum_index/odeum.h +541 -0
- data/ext/odeum_index/odeum_index.c +991 -0
- data/ext/odeum_index/villa.c +1923 -0
- data/ext/odeum_index/villa.h +470 -0
- data/ext/odeum_index/vista.c +159 -0
- data/ext/odeum_index/vista.h +111 -0
- data/test/test_odeum.rb +174 -0
- metadata +138 -0
@@ -0,0 +1,159 @@
|
|
1
|
+
/*************************************************************************************************
|
2
|
+
* Implementation of Vista
|
3
|
+
* Copyright (C) 2000-2005 Mikio Hirabayashi
|
4
|
+
* This file is part of QDBM, Quick Database Manager.
|
5
|
+
* QDBM is free software; you can redistribute it and/or modify it under the terms of the GNU
|
6
|
+
* Lesser General Public License as published by the Free Software Foundation; either version
|
7
|
+
* 2.1 of the License or any later version. QDBM is distributed in the hope that it will be
|
8
|
+
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
9
|
+
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
10
|
+
* details.
|
11
|
+
* You should have received a copy of the GNU Lesser General Public License along with QDBM; if
|
12
|
+
* not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
13
|
+
* 02111-1307 USA.
|
14
|
+
*************************************************************************************************/
|
15
|
+
|
16
|
+
|
17
|
+
#define _VISTA_C
|
18
|
+
#include "vista.h"
|
19
|
+
#include "myconf.h"
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
/*************************************************************************************************
|
24
|
+
* macros to convert Depot to Curia
|
25
|
+
*************************************************************************************************/
|
26
|
+
|
27
|
+
|
28
|
+
#define DEPOT CURIA
|
29
|
+
|
30
|
+
#define DPCR_DNUM 16
|
31
|
+
|
32
|
+
#define \
|
33
|
+
dpopen(name, omode, bnum) \
|
34
|
+
cropen(name, omode, ((bnum / DPCR_DNUM) * 2), DPCR_DNUM)
|
35
|
+
|
36
|
+
#define \
|
37
|
+
dpclose(db) \
|
38
|
+
crclose(db)
|
39
|
+
|
40
|
+
#define \
|
41
|
+
dpput(db, kbuf, ksiz, vbuf, vsiz, dmode) \
|
42
|
+
crput(db, kbuf, ksiz, vbuf, vsiz, dmode)
|
43
|
+
|
44
|
+
#define \
|
45
|
+
dpout(db, kbuf, ksiz) \
|
46
|
+
crout(db, kbuf, ksiz)
|
47
|
+
|
48
|
+
#define \
|
49
|
+
dpget(db, kbuf, ksiz, start, max, sp) \
|
50
|
+
crget(db, kbuf, ksiz, start, max, sp)
|
51
|
+
|
52
|
+
#define \
|
53
|
+
dpgetwb(db, kbuf, ksiz, start, max, vbuf) \
|
54
|
+
crgetwb(db, kbuf, ksiz, start, max, vbuf)
|
55
|
+
|
56
|
+
#define \
|
57
|
+
dpvsiz(db, kbuf, ksiz) \
|
58
|
+
crvsiz(db, kbuf, ksiz)
|
59
|
+
|
60
|
+
#define \
|
61
|
+
dpiterinit(db) \
|
62
|
+
criterinit(db)
|
63
|
+
|
64
|
+
#define \
|
65
|
+
dpiternext(db, sp) \
|
66
|
+
criternext(db, sp)
|
67
|
+
|
68
|
+
#define \
|
69
|
+
dpsetalign(db, align) \
|
70
|
+
crsetalign(db, align)
|
71
|
+
|
72
|
+
#define \
|
73
|
+
dpsync(db) \
|
74
|
+
crsync(db)
|
75
|
+
|
76
|
+
#define \
|
77
|
+
dpoptimize(db, bnum) \
|
78
|
+
croptimize(db, bnum)
|
79
|
+
|
80
|
+
#define \
|
81
|
+
dpname(db) \
|
82
|
+
crname(db)
|
83
|
+
|
84
|
+
#define \
|
85
|
+
dpfsiz(db) \
|
86
|
+
crfsiz(db)
|
87
|
+
|
88
|
+
#define \
|
89
|
+
dpbnum(db) \
|
90
|
+
crbnum(db)
|
91
|
+
|
92
|
+
#define \
|
93
|
+
dpbusenum(db) \
|
94
|
+
crbusenum(db)
|
95
|
+
|
96
|
+
#define \
|
97
|
+
dprnum(db) \
|
98
|
+
crrnum(db)
|
99
|
+
|
100
|
+
#define \
|
101
|
+
dpwritable(db) \
|
102
|
+
crwritable(db)
|
103
|
+
|
104
|
+
#define \
|
105
|
+
dpfatalerror(db) \
|
106
|
+
crfatalerror(db)
|
107
|
+
|
108
|
+
#define \
|
109
|
+
dpinode(db) \
|
110
|
+
crinode(db)
|
111
|
+
|
112
|
+
#define \
|
113
|
+
dpmtime(db) \
|
114
|
+
crmtime(db)
|
115
|
+
|
116
|
+
#define \
|
117
|
+
dpfdesc(db) \
|
118
|
+
crfdesc(db)
|
119
|
+
|
120
|
+
#define \
|
121
|
+
dpremove(db) \
|
122
|
+
crremove(db)
|
123
|
+
|
124
|
+
#define \
|
125
|
+
dprepair(db) \
|
126
|
+
crrepair(db)
|
127
|
+
|
128
|
+
#define \
|
129
|
+
dpexportdb(db, name) \
|
130
|
+
crexportdb(db, name)
|
131
|
+
|
132
|
+
#define \
|
133
|
+
dpimportdb(db, name) \
|
134
|
+
crimportdb(db, name)
|
135
|
+
|
136
|
+
#define \
|
137
|
+
dpmemsync(db) \
|
138
|
+
crmemsync(db)
|
139
|
+
|
140
|
+
#define \
|
141
|
+
dpgetflags(db) \
|
142
|
+
crgetflags(db)
|
143
|
+
|
144
|
+
#define \
|
145
|
+
dpsetflags(db, flags) \
|
146
|
+
crsetflags(db, flags)
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
/*************************************************************************************************
|
151
|
+
* including real implementation
|
152
|
+
*************************************************************************************************/
|
153
|
+
|
154
|
+
|
155
|
+
#include "villa.c"
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
/* END OF FILE */
|
@@ -0,0 +1,111 @@
|
|
1
|
+
/*************************************************************************************************
|
2
|
+
* The extended advanced API of QDBM
|
3
|
+
* Copyright (C) 2000-2005 Mikio Hirabayashi
|
4
|
+
* This file is part of QDBM, Quick Database Manager.
|
5
|
+
* QDBM is free software; you can redistribute it and/or modify it under the terms of the GNU
|
6
|
+
* Lesser General Public License as published by the Free Software Foundation; either version
|
7
|
+
* 2.1 of the License or any later version. QDBM is distributed in the hope that it will be
|
8
|
+
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
9
|
+
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
10
|
+
* details.
|
11
|
+
* You should have received a copy of the GNU Lesser General Public License along with QDBM; if
|
12
|
+
* not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
13
|
+
* 02111-1307 USA.
|
14
|
+
*************************************************************************************************/
|
15
|
+
|
16
|
+
|
17
|
+
#ifndef _VISTA_H /* duplication check */
|
18
|
+
#define _VISTA_H
|
19
|
+
|
20
|
+
#if defined(__cplusplus) /* export for C++ */
|
21
|
+
extern "C" {
|
22
|
+
#endif
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
/*************************************************************************************************
|
27
|
+
* macros to borrow symbols from Villa
|
28
|
+
*************************************************************************************************/
|
29
|
+
|
30
|
+
|
31
|
+
#include <depot.h>
|
32
|
+
#include <curia.h>
|
33
|
+
#include <cabin.h>
|
34
|
+
#include <stdlib.h>
|
35
|
+
|
36
|
+
#define VLREC VSTREC
|
37
|
+
#define VLIDX VSTIDX
|
38
|
+
#define VLLEAF VSTLEAF
|
39
|
+
#define VLNODE VSTNODE
|
40
|
+
#define VLCFUNC VSTCFUNC
|
41
|
+
|
42
|
+
#define VL_CMPLEX VST_CMPLEX
|
43
|
+
#define VL_CMPINT VST_CMPINT
|
44
|
+
#define VL_CMPNUM VST_CMPNUM
|
45
|
+
#define VL_CMPDEC VST_CMPDEC
|
46
|
+
|
47
|
+
#define VILLA VISTA
|
48
|
+
|
49
|
+
#define VL_OREADER VST_OREADER
|
50
|
+
#define VL_OWRITER VST_OWRITER
|
51
|
+
#define VL_OCREAT VST_OCREAT
|
52
|
+
#define VL_OTRUNC VST_OTRUNC
|
53
|
+
#define VL_ONOLCK VST_ONOLCK
|
54
|
+
#define VL_OZCOMP VST_OZCOMP
|
55
|
+
|
56
|
+
#define VL_DOVER VST_DOVER
|
57
|
+
#define VL_DKEEP VST_DKEEP
|
58
|
+
#define VL_DDUP VST_DDUP
|
59
|
+
|
60
|
+
#define VL_JFORWARD VST_JFORWARD
|
61
|
+
#define VL_JBACKWARD VST_JBACKWARD
|
62
|
+
|
63
|
+
#define vlopen vstopen
|
64
|
+
#define vlclose vstclose
|
65
|
+
#define vlput vstput
|
66
|
+
#define vlout vstout
|
67
|
+
#define vlget vstget
|
68
|
+
#define vlvnum vstvnum
|
69
|
+
#define vlputlist vstputlist
|
70
|
+
#define vloutlist vstoutlist
|
71
|
+
#define vlgetlist vstgetlist
|
72
|
+
#define vlcurfirst vstcurfirst
|
73
|
+
#define vlcurlast vstcurlast
|
74
|
+
#define vlcurprev vstcurprev
|
75
|
+
#define vlcurnext vstcurnext
|
76
|
+
#define vlcurjump vstcurjump
|
77
|
+
#define vlcurkey vstcurkey
|
78
|
+
#define vlcurval vstcurval
|
79
|
+
#define vlsettuning vstsettuning
|
80
|
+
#define vlsync vstsync
|
81
|
+
#define vloptimize vstoptimize
|
82
|
+
#define vlname vstname
|
83
|
+
#define vlfsiz vstfsiz
|
84
|
+
#define vllnum vstlnum
|
85
|
+
#define vlnnum vstnnum
|
86
|
+
#define vlrnum vstrnum
|
87
|
+
#define vlwritable vstwritable
|
88
|
+
#define vlfatalerror vstfatalerror
|
89
|
+
#define vlinode vstinode
|
90
|
+
#define vlmtime vstmtime
|
91
|
+
#define vltranbegin vsttranbegin
|
92
|
+
#define vltrancommit vsttrancommit
|
93
|
+
#define vltranabort vsttranabort
|
94
|
+
#define vlremove vstremove
|
95
|
+
#define vlrepair vstrepair
|
96
|
+
#define vlexportdb vstexportdb
|
97
|
+
#define vlimportdb vstimportdb
|
98
|
+
|
99
|
+
#ifndef _VISTA_C
|
100
|
+
#include <villa.h>
|
101
|
+
#endif
|
102
|
+
|
103
|
+
|
104
|
+
#if defined(__cplusplus) /* export for C++ */
|
105
|
+
}
|
106
|
+
#endif
|
107
|
+
|
108
|
+
#endif /* duplication check */
|
109
|
+
|
110
|
+
|
111
|
+
/* END OF FILE */
|
data/test/test_odeum.rb
ADDED
@@ -0,0 +1,174 @@
|
|
1
|
+
require 'odeum_index'
|
2
|
+
require 'test/unit'
|
3
|
+
|
4
|
+
|
5
|
+
class OdeumTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@odeum = Odeum::Index.new "testdata", Odeum::OCREAT | Odeum::OWRITER
|
9
|
+
end
|
10
|
+
|
11
|
+
def teardown
|
12
|
+
@odeum.close
|
13
|
+
Odeum::remove("testdata")
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_attributes
|
17
|
+
assert_equal "testdata", @odeum.name
|
18
|
+
@odeum.size
|
19
|
+
@odeum.bucket_count
|
20
|
+
@odeum.buckets_used
|
21
|
+
@odeum.doc_count
|
22
|
+
@odeum.word_count
|
23
|
+
assert @odeum.writable
|
24
|
+
assert(!@odeum.fatal_error)
|
25
|
+
@odeum.inode
|
26
|
+
@odeum.mtime
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_document_attr
|
30
|
+
doc = Odeum::Document.new "testfile"
|
31
|
+
|
32
|
+
time = Time.now.to_s
|
33
|
+
doc["Author"] = "Zed A. Shaw"
|
34
|
+
doc["Date"]= time
|
35
|
+
|
36
|
+
assert_equal "Zed A. Shaw", doc["Author"]
|
37
|
+
assert_equal time, doc["Date"]
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_document_words
|
41
|
+
awords_expected = ["This", "is", "a", "set", "of", "words", "that", "we", "work", "with."]
|
42
|
+
nwords_expected = ["this", "is", "a", "set", "of", "words", "that", "we", "work", "with"]
|
43
|
+
|
44
|
+
# the manual way
|
45
|
+
doc = Odeum::Document.new "testfile"
|
46
|
+
words = Odeum::breaktext("This is a set of words that we work with.")
|
47
|
+
words.each do |word|
|
48
|
+
norm = Odeum::normalizeword(word)
|
49
|
+
doc.addword(norm, word)
|
50
|
+
end
|
51
|
+
|
52
|
+
assert_equal nwords_expected, doc.normal_words
|
53
|
+
assert_equal awords_expected, doc.asis_words
|
54
|
+
|
55
|
+
# manual, but adding an array of words
|
56
|
+
doc = Odeum::Document.new "testfile"
|
57
|
+
doc.add_word_list awords_expected
|
58
|
+
|
59
|
+
assert_equal nwords_expected, doc.normal_words
|
60
|
+
assert_equal awords_expected, doc.asis_words
|
61
|
+
|
62
|
+
# the easy way
|
63
|
+
doc = Odeum::Document.new "testfile"
|
64
|
+
doc.add_content("This is a set of words that we work with.")
|
65
|
+
|
66
|
+
assert_equal nwords_expected, doc.normal_words
|
67
|
+
assert_equal awords_expected, doc.asis_words
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_document_misc
|
71
|
+
doc = Odeum::Document.new "testfile"
|
72
|
+
doc.id
|
73
|
+
assert_equal doc.uri, "testfile"
|
74
|
+
end
|
75
|
+
|
76
|
+
|
77
|
+
def test_load_documents
|
78
|
+
10.times do |i|
|
79
|
+
doc = Odeum::Document.new "doc#{i}"
|
80
|
+
# create a bunch of words
|
81
|
+
words = Odeum::breaktext("This is a set of words that we work with.")
|
82
|
+
words.each do |word|
|
83
|
+
norm = Odeum::normalizeword(word)
|
84
|
+
doc.addword(norm, word)
|
85
|
+
end
|
86
|
+
|
87
|
+
time = Time.now.to_s
|
88
|
+
doc["Author"] = "Zed A. Shaw"
|
89
|
+
doc["Date"] = time
|
90
|
+
|
91
|
+
res = @odeum.put(doc, -1, 1);
|
92
|
+
end
|
93
|
+
|
94
|
+
# test the remaining methods
|
95
|
+
assert @odeum.sync
|
96
|
+
assert @odeum.optimize
|
97
|
+
|
98
|
+
# documents should be loaded, try iterating through them
|
99
|
+
assert @odeum.word_count == 10
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_retrieval_delete
|
103
|
+
test_load_documents
|
104
|
+
|
105
|
+
# get all the docs
|
106
|
+
docs = []
|
107
|
+
@odeum.iterator
|
108
|
+
while (doc = @odeum.next)
|
109
|
+
docs << doc
|
110
|
+
end
|
111
|
+
|
112
|
+
# now remove them by different methods
|
113
|
+
docs.length.times do |i|
|
114
|
+
# test grabbing the scores
|
115
|
+
scores = docs[i].scores(20, @odeum);
|
116
|
+
|
117
|
+
# testing get by id
|
118
|
+
doc = @odeum.get_by_id(docs[i].id)
|
119
|
+
assert_equal doc.uri, docs[i].uri
|
120
|
+
assert_equal doc.id, docs[i].id
|
121
|
+
|
122
|
+
# testing get
|
123
|
+
doc = @odeum.get(docs[i].uri)
|
124
|
+
assert_equal doc.uri, docs[i].uri
|
125
|
+
assert_equal doc.id, docs[i].id
|
126
|
+
|
127
|
+
# testing check
|
128
|
+
assert @odeum.check(docs[i].id)
|
129
|
+
|
130
|
+
# testing getting the id by uri
|
131
|
+
assert_equal docs[i].id, @odeum.get_id_by_uri(docs[i].uri)
|
132
|
+
|
133
|
+
# testing out by id
|
134
|
+
if i % 2 == 0
|
135
|
+
@odeum.delete(docs[i].uri)
|
136
|
+
else
|
137
|
+
@odeum.delete_by_id(docs[i].id)
|
138
|
+
end
|
139
|
+
|
140
|
+
@odeum.sync
|
141
|
+
assert (not @odeum.check(docs[i].id))
|
142
|
+
end
|
143
|
+
|
144
|
+
assert_equal @odeum.doc_count, 0
|
145
|
+
end
|
146
|
+
|
147
|
+
|
148
|
+
def test_search
|
149
|
+
test_load_documents
|
150
|
+
|
151
|
+
awords = {}
|
152
|
+
nwords = {}
|
153
|
+
|
154
|
+
# go through all the docs and build a list of words
|
155
|
+
@odeum.iterator
|
156
|
+
while (doc = @odeum.next)
|
157
|
+
doc.asis_words.each { |word| awords[word] = nil }
|
158
|
+
doc.normal_words.each { |word| nwords[word] = nil }
|
159
|
+
end
|
160
|
+
|
161
|
+
# now try searching through and see if we get some results
|
162
|
+
awords.each do |word, value|
|
163
|
+
num = @odeum.search_doc_count(Odeum::normalizeword(word))
|
164
|
+
pairs = @odeum.search(Odeum::normalizeword(word), @odeum.doc_count)
|
165
|
+
assert_equal num, pairs.length
|
166
|
+
end
|
167
|
+
|
168
|
+
nwords.each do |word, value|
|
169
|
+
num = @odeum.search_doc_count(word)
|
170
|
+
pairs = @odeum.search(word, @odeum.doc_count)
|
171
|
+
assert_equal num, pairs.length
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
metadata
ADDED
@@ -0,0 +1,138 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.3
|
3
|
+
specification_version: 1
|
4
|
+
name: ruby_odeum
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.2.1
|
7
|
+
date: 2005-04-20
|
8
|
+
summary: Ruby/Odeum is a simple full text reverse indexer that lets you index a set of files and then search through them very quickly.
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email:
|
12
|
+
homepage:
|
13
|
+
rubyforge_project:
|
14
|
+
description:
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
-
|
22
|
+
- ">"
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.0.0
|
25
|
+
version:
|
26
|
+
platform: ruby
|
27
|
+
authors:
|
28
|
+
- Zed A. Shaw
|
29
|
+
files:
|
30
|
+
- COPYING
|
31
|
+
- LICENSE
|
32
|
+
- README
|
33
|
+
- bin/odeum_mgr
|
34
|
+
- doc/rdoc
|
35
|
+
- doc/rdoc/files
|
36
|
+
- doc/rdoc/index.html
|
37
|
+
- doc/rdoc/rdoc-style.css
|
38
|
+
- doc/rdoc/fr_method_index.html
|
39
|
+
- doc/rdoc/fr_class_index.html
|
40
|
+
- doc/rdoc/fr_file_index.html
|
41
|
+
- doc/rdoc/created.rid
|
42
|
+
- doc/rdoc/classes
|
43
|
+
- doc/rdoc/files/ext
|
44
|
+
- doc/rdoc/files/test
|
45
|
+
- doc/rdoc/files/LICENSE.html
|
46
|
+
- doc/rdoc/files/README.html
|
47
|
+
- doc/rdoc/files/COPYING.html
|
48
|
+
- doc/rdoc/files/ext/odeum_index
|
49
|
+
- doc/rdoc/files/ext/odeum_index/odeum_index_c.html
|
50
|
+
- doc/rdoc/files/test/test_odeum_rb.html
|
51
|
+
- doc/rdoc/classes/Odeum
|
52
|
+
- doc/rdoc/classes/OdeumTest.src
|
53
|
+
- doc/rdoc/classes/OdeumTest.html
|
54
|
+
- doc/rdoc/classes/Odeum.html
|
55
|
+
- doc/rdoc/classes/Odeum.src
|
56
|
+
- doc/rdoc/classes/Odeum/Index.src
|
57
|
+
- doc/rdoc/classes/Odeum/Index.html
|
58
|
+
- doc/rdoc/classes/Odeum/Document.html
|
59
|
+
- doc/rdoc/classes/Odeum/Document.src
|
60
|
+
- doc/rdoc/classes/Odeum/Index.src/M000015.html
|
61
|
+
- doc/rdoc/classes/Odeum/Index.src/M000016.html
|
62
|
+
- doc/rdoc/classes/Odeum/Index.src/M000017.html
|
63
|
+
- doc/rdoc/classes/Odeum/Index.src/M000018.html
|
64
|
+
- doc/rdoc/classes/Odeum/Index.src/M000019.html
|
65
|
+
- doc/rdoc/classes/Odeum/Index.src/M000020.html
|
66
|
+
- doc/rdoc/classes/Odeum/Index.src/M000021.html
|
67
|
+
- doc/rdoc/classes/Odeum/Index.src/M000022.html
|
68
|
+
- doc/rdoc/classes/Odeum/Index.src/M000023.html
|
69
|
+
- doc/rdoc/classes/Odeum/Index.src/M000024.html
|
70
|
+
- doc/rdoc/classes/Odeum/Index.src/M000025.html
|
71
|
+
- doc/rdoc/classes/Odeum/Index.src/M000026.html
|
72
|
+
- doc/rdoc/classes/Odeum/Index.src/M000027.html
|
73
|
+
- doc/rdoc/classes/Odeum/Index.src/M000028.html
|
74
|
+
- doc/rdoc/classes/Odeum/Index.src/M000029.html
|
75
|
+
- doc/rdoc/classes/Odeum/Index.src/M000030.html
|
76
|
+
- doc/rdoc/classes/Odeum/Index.src/M000031.html
|
77
|
+
- doc/rdoc/classes/Odeum/Index.src/M000032.html
|
78
|
+
- doc/rdoc/classes/Odeum/Index.src/M000033.html
|
79
|
+
- doc/rdoc/classes/Odeum/Index.src/M000034.html
|
80
|
+
- doc/rdoc/classes/Odeum/Index.src/M000035.html
|
81
|
+
- doc/rdoc/classes/Odeum/Index.src/M000036.html
|
82
|
+
- doc/rdoc/classes/Odeum/Index.src/M000037.html
|
83
|
+
- doc/rdoc/classes/Odeum/Index.src/M000038.html
|
84
|
+
- doc/rdoc/classes/Odeum/Index.src/M000039.html
|
85
|
+
- doc/rdoc/classes/Odeum/Document.src/M000040.html
|
86
|
+
- doc/rdoc/classes/Odeum/Document.src/M000041.html
|
87
|
+
- doc/rdoc/classes/Odeum/Document.src/M000042.html
|
88
|
+
- doc/rdoc/classes/Odeum/Document.src/M000043.html
|
89
|
+
- doc/rdoc/classes/Odeum/Document.src/M000044.html
|
90
|
+
- doc/rdoc/classes/Odeum/Document.src/M000045.html
|
91
|
+
- doc/rdoc/classes/Odeum/Document.src/M000046.html
|
92
|
+
- doc/rdoc/classes/Odeum/Document.src/M000047.html
|
93
|
+
- doc/rdoc/classes/Odeum/Document.src/M000048.html
|
94
|
+
- doc/rdoc/classes/Odeum/Document.src/M000049.html
|
95
|
+
- doc/rdoc/classes/Odeum/Document.src/M000050.html
|
96
|
+
- doc/rdoc/classes/Odeum/Document.src/M000051.html
|
97
|
+
- doc/rdoc/classes/OdeumTest.src/M000008.html
|
98
|
+
- doc/rdoc/classes/OdeumTest.src/M000009.html
|
99
|
+
- doc/rdoc/classes/OdeumTest.src/M000001.html
|
100
|
+
- doc/rdoc/classes/OdeumTest.src/M000002.html
|
101
|
+
- doc/rdoc/classes/OdeumTest.src/M000003.html
|
102
|
+
- doc/rdoc/classes/OdeumTest.src/M000004.html
|
103
|
+
- doc/rdoc/classes/OdeumTest.src/M000005.html
|
104
|
+
- doc/rdoc/classes/OdeumTest.src/M000006.html
|
105
|
+
- doc/rdoc/classes/OdeumTest.src/M000007.html
|
106
|
+
- doc/rdoc/classes/Odeum.src/M000010.html
|
107
|
+
- doc/rdoc/classes/Odeum.src/M000011.html
|
108
|
+
- doc/rdoc/classes/Odeum.src/M000012.html
|
109
|
+
- doc/rdoc/classes/Odeum.src/M000013.html
|
110
|
+
- doc/rdoc/classes/Odeum.src/M000014.html
|
111
|
+
- test/test_odeum.rb
|
112
|
+
- ext/odeum_index/depot.h
|
113
|
+
- ext/odeum_index/curia.h
|
114
|
+
- ext/odeum_index/odeum.h
|
115
|
+
- ext/odeum_index/villa.h
|
116
|
+
- ext/odeum_index/vista.h
|
117
|
+
- ext/odeum_index/myconf.h
|
118
|
+
- ext/odeum_index/cabin.h
|
119
|
+
- ext/odeum_index/depot.c
|
120
|
+
- ext/odeum_index/curia.c
|
121
|
+
- ext/odeum_index/odeum.c
|
122
|
+
- ext/odeum_index/villa.c
|
123
|
+
- ext/odeum_index/vista.c
|
124
|
+
- ext/odeum_index/myconf.c
|
125
|
+
- ext/odeum_index/cabin.c
|
126
|
+
- ext/odeum_index/odeum_index.c
|
127
|
+
- ext/odeum_index/extconf.rb
|
128
|
+
test_files:
|
129
|
+
- test/test_odeum.rb
|
130
|
+
rdoc_options: []
|
131
|
+
extra_rdoc_files:
|
132
|
+
- README
|
133
|
+
executables:
|
134
|
+
- odeum_mgr
|
135
|
+
extensions:
|
136
|
+
- ext/odeum_index/extconf.rb
|
137
|
+
requirements: []
|
138
|
+
dependencies: []
|