isomorfeus-ferret 0.17.2 → 0.17.3
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.
- checksums.yaml +4 -4
- data/ext/isomorfeus_ferret_ext/benchmark.c +9 -20
- data/ext/isomorfeus_ferret_ext/benchmarks_all.h +1 -2
- data/ext/isomorfeus_ferret_ext/bm_hash.c +1 -2
- data/ext/isomorfeus_ferret_ext/brotli_dec_decode.c +4 -2
- data/ext/isomorfeus_ferret_ext/brotli_enc_encode.c +3 -2
- data/ext/isomorfeus_ferret_ext/frb_analysis.c +4 -5
- data/ext/isomorfeus_ferret_ext/frb_field_info.c +3 -4
- data/ext/isomorfeus_ferret_ext/frb_index.c +118 -125
- data/ext/isomorfeus_ferret_ext/frb_lazy_doc.c +14 -16
- data/ext/isomorfeus_ferret_ext/frb_search.c +31 -23
- data/ext/isomorfeus_ferret_ext/frb_store.c +27 -13
- data/ext/isomorfeus_ferret_ext/frb_utils.c +3 -6
- data/ext/isomorfeus_ferret_ext/frt_analysis.c +39 -46
- data/ext/isomorfeus_ferret_ext/frt_analysis.h +9 -9
- data/ext/isomorfeus_ferret_ext/frt_array.c +11 -22
- data/ext/isomorfeus_ferret_ext/frt_bitvector.h +3 -6
- data/ext/isomorfeus_ferret_ext/frt_doc_field.c +87 -0
- data/ext/isomorfeus_ferret_ext/frt_doc_field.h +26 -0
- data/ext/isomorfeus_ferret_ext/frt_document.c +4 -97
- data/ext/isomorfeus_ferret_ext/frt_document.h +2 -27
- data/ext/isomorfeus_ferret_ext/frt_except.c +8 -6
- data/ext/isomorfeus_ferret_ext/frt_except.h +1 -2
- data/ext/isomorfeus_ferret_ext/frt_field_index.c +13 -32
- data/ext/isomorfeus_ferret_ext/frt_field_index.h +0 -6
- data/ext/isomorfeus_ferret_ext/frt_field_info.c +69 -0
- data/ext/isomorfeus_ferret_ext/frt_field_info.h +49 -0
- data/ext/isomorfeus_ferret_ext/frt_field_infos.c +196 -0
- data/ext/isomorfeus_ferret_ext/frt_field_infos.h +35 -0
- data/ext/isomorfeus_ferret_ext/frt_global.c +10 -4
- data/ext/isomorfeus_ferret_ext/frt_global.h +11 -15
- data/ext/isomorfeus_ferret_ext/frt_hash.c +8 -8
- data/ext/isomorfeus_ferret_ext/frt_hash.h +1 -2
- data/ext/isomorfeus_ferret_ext/frt_hashset.c +20 -40
- data/ext/isomorfeus_ferret_ext/frt_hashset.h +1 -2
- data/ext/isomorfeus_ferret_ext/frt_helper.c +7 -15
- data/ext/isomorfeus_ferret_ext/frt_in_stream.c +35 -45
- data/ext/isomorfeus_ferret_ext/frt_in_stream.h +3 -2
- data/ext/isomorfeus_ferret_ext/frt_ind.c +20 -38
- data/ext/isomorfeus_ferret_ext/frt_index.c +292 -790
- data/ext/isomorfeus_ferret_ext/frt_index.h +1 -102
- data/ext/isomorfeus_ferret_ext/frt_lang.c +5 -10
- data/ext/isomorfeus_ferret_ext/frt_lazy_doc.c +3 -3
- data/ext/isomorfeus_ferret_ext/frt_lazy_doc.h +1 -1
- data/ext/isomorfeus_ferret_ext/frt_lazy_doc_field.c +18 -25
- data/ext/isomorfeus_ferret_ext/frt_lazy_doc_field.h +5 -5
- data/ext/isomorfeus_ferret_ext/frt_mdbx_store.c +102 -70
- data/ext/isomorfeus_ferret_ext/frt_mempool.c +8 -16
- data/ext/isomorfeus_ferret_ext/frt_multimapper.c +23 -46
- data/ext/isomorfeus_ferret_ext/frt_multimapper.h +4 -8
- data/ext/isomorfeus_ferret_ext/frt_out_stream.c +31 -43
- data/ext/isomorfeus_ferret_ext/frt_out_stream.h +2 -2
- data/ext/isomorfeus_ferret_ext/frt_posh.c +6 -819
- data/ext/isomorfeus_ferret_ext/frt_posh.h +0 -57
- data/ext/isomorfeus_ferret_ext/frt_priorityqueue.c +11 -22
- data/ext/isomorfeus_ferret_ext/frt_priorityqueue.h +1 -2
- data/ext/isomorfeus_ferret_ext/frt_q_boolean.c +85 -171
- data/ext/isomorfeus_ferret_ext/frt_q_match_all.c +8 -16
- data/ext/isomorfeus_ferret_ext/frt_q_multi_term.c +1 -2
- data/ext/isomorfeus_ferret_ext/frt_q_parser.c +49 -98
- data/ext/isomorfeus_ferret_ext/frt_q_phrase.c +52 -104
- data/ext/isomorfeus_ferret_ext/frt_q_range.c +6 -12
- data/ext/isomorfeus_ferret_ext/frt_q_span.c +113 -226
- data/ext/isomorfeus_ferret_ext/frt_q_wildcard.c +1 -2
- data/ext/isomorfeus_ferret_ext/frt_ram_store.c +134 -85
- data/ext/isomorfeus_ferret_ext/frt_search.c +82 -164
- data/ext/isomorfeus_ferret_ext/frt_similarity.c +11 -22
- data/ext/isomorfeus_ferret_ext/frt_similarity.h +1 -2
- data/ext/isomorfeus_ferret_ext/frt_store.c +13 -25
- data/ext/isomorfeus_ferret_ext/frt_store.h +86 -52
- data/ext/isomorfeus_ferret_ext/frt_term_vectors.c +8 -16
- data/ext/isomorfeus_ferret_ext/frt_win32.h +5 -10
- data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.c +12 -11
- data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.h +11 -13
- data/ext/isomorfeus_ferret_ext/lz4.c +422 -195
- data/ext/isomorfeus_ferret_ext/lz4.h +114 -46
- data/ext/isomorfeus_ferret_ext/lz4frame.c +421 -242
- data/ext/isomorfeus_ferret_ext/lz4frame.h +122 -53
- data/ext/isomorfeus_ferret_ext/lz4hc.c +127 -111
- data/ext/isomorfeus_ferret_ext/lz4hc.h +14 -14
- data/ext/isomorfeus_ferret_ext/lz4xxhash.h +1 -1
- data/ext/isomorfeus_ferret_ext/mdbx.c +3762 -2526
- data/ext/isomorfeus_ferret_ext/mdbx.h +115 -70
- data/ext/isomorfeus_ferret_ext/test.c +40 -87
- data/ext/isomorfeus_ferret_ext/test.h +3 -6
- data/ext/isomorfeus_ferret_ext/test_1710.c +11 -13
- data/ext/isomorfeus_ferret_ext/test_analysis.c +32 -64
- data/ext/isomorfeus_ferret_ext/test_array.c +6 -12
- data/ext/isomorfeus_ferret_ext/test_bitvector.c +12 -24
- data/ext/isomorfeus_ferret_ext/test_document.c +23 -33
- data/ext/isomorfeus_ferret_ext/test_except.c +10 -21
- data/ext/isomorfeus_ferret_ext/test_fields.c +62 -68
- data/ext/isomorfeus_ferret_ext/test_file_deleter.c +15 -23
- data/ext/isomorfeus_ferret_ext/test_filter.c +17 -27
- data/ext/isomorfeus_ferret_ext/test_global.c +14 -29
- data/ext/isomorfeus_ferret_ext/test_hash.c +19 -38
- data/ext/isomorfeus_ferret_ext/test_hashset.c +8 -16
- data/ext/isomorfeus_ferret_ext/test_helper.c +4 -8
- data/ext/isomorfeus_ferret_ext/test_highlighter.c +16 -28
- data/ext/isomorfeus_ferret_ext/test_index.c +277 -487
- data/ext/isomorfeus_ferret_ext/test_lang.c +7 -14
- data/ext/isomorfeus_ferret_ext/test_mdbx_store.c +2 -5
- data/ext/isomorfeus_ferret_ext/test_mempool.c +5 -10
- data/ext/isomorfeus_ferret_ext/test_multimapper.c +3 -6
- data/ext/isomorfeus_ferret_ext/test_priorityqueue.c +9 -18
- data/ext/isomorfeus_ferret_ext/test_q_const_score.c +4 -6
- data/ext/isomorfeus_ferret_ext/test_q_filtered.c +3 -4
- data/ext/isomorfeus_ferret_ext/test_q_fuzzy.c +9 -15
- data/ext/isomorfeus_ferret_ext/test_q_parser.c +8 -16
- data/ext/isomorfeus_ferret_ext/test_q_span.c +19 -35
- data/ext/isomorfeus_ferret_ext/test_ram_store.c +14 -13
- data/ext/isomorfeus_ferret_ext/test_search.c +60 -109
- data/ext/isomorfeus_ferret_ext/test_segments.c +8 -13
- data/ext/isomorfeus_ferret_ext/test_similarity.c +2 -4
- data/ext/isomorfeus_ferret_ext/test_sort.c +14 -24
- data/ext/isomorfeus_ferret_ext/test_store.c +96 -115
- data/ext/isomorfeus_ferret_ext/test_term.c +9 -15
- data/ext/isomorfeus_ferret_ext/test_term_vectors.c +9 -14
- data/ext/isomorfeus_ferret_ext/test_test.c +4 -8
- data/ext/isomorfeus_ferret_ext/test_threading.c +14 -20
- data/ext/isomorfeus_ferret_ext/testhelper.c +11 -21
- data/ext/isomorfeus_ferret_ext/testhelper.h +1 -1
- data/ext/isomorfeus_ferret_ext/tests_all.h +1 -2
- data/lib/isomorfeus/ferret/index/index.rb +1 -1
- data/lib/isomorfeus/ferret/version.rb +1 -1
- metadata +24 -4
@@ -5,8 +5,7 @@
|
|
5
5
|
#define TERM_LEN 10
|
6
6
|
|
7
7
|
|
8
|
-
static void test_posting(TestCase *tc, void *data)
|
9
|
-
{
|
8
|
+
static void test_posting(TestCase *tc, void *data) {
|
10
9
|
FrtMemoryPool *mp = (FrtMemoryPool *)data;
|
11
10
|
FrtPostingList *pl;
|
12
11
|
FrtPosting *p = frt_p_new(mp, 0, 10);
|
@@ -43,8 +42,7 @@ static FrtFieldInfos *create_tv_fis(void) {
|
|
43
42
|
return fis;
|
44
43
|
}
|
45
44
|
|
46
|
-
static char **create_tv_terms(FrtMemoryPool *mp)
|
47
|
-
{
|
45
|
+
static char **create_tv_terms(FrtMemoryPool *mp) {
|
48
46
|
int i;
|
49
47
|
char term_buf[10];
|
50
48
|
char **terms = FRT_MP_ALLOC_N(mp, char *, NUM_TERMS);
|
@@ -55,8 +53,7 @@ static char **create_tv_terms(FrtMemoryPool *mp)
|
|
55
53
|
return terms;
|
56
54
|
}
|
57
55
|
|
58
|
-
static FrtPostingList **create_tv_plists(FrtMemoryPool *mp, char **terms)
|
59
|
-
{
|
56
|
+
static FrtPostingList **create_tv_plists(FrtMemoryPool *mp, char **terms) {
|
60
57
|
int i, j;
|
61
58
|
FrtPostingList **plists, *pl;
|
62
59
|
plists = FRT_MP_ALLOC_N(mp, FrtPostingList *, NUM_TERMS);
|
@@ -70,8 +67,7 @@ static FrtPostingList **create_tv_plists(FrtMemoryPool *mp, char **terms)
|
|
70
67
|
return plists;
|
71
68
|
}
|
72
69
|
|
73
|
-
static FrtOffset *create_tv_offsets(FrtMemoryPool *mp)
|
74
|
-
{
|
70
|
+
static FrtOffset *create_tv_offsets(FrtMemoryPool *mp) {
|
75
71
|
int i;
|
76
72
|
FrtOffset *offsets = FRT_MP_ALLOC_N(mp, FrtOffset, NUM_TERMS);
|
77
73
|
for (i = 0; i < NUM_TERMS; i++) {
|
@@ -81,10 +77,10 @@ static FrtOffset *create_tv_offsets(FrtMemoryPool *mp)
|
|
81
77
|
return offsets;
|
82
78
|
}
|
83
79
|
|
84
|
-
static void test_tv_single_doc(TestCase *tc, void *data)
|
85
|
-
{
|
80
|
+
static void test_tv_single_doc(TestCase *tc, void *data) {
|
86
81
|
int i, j;
|
87
82
|
FrtStore *store = frt_open_ram_store(NULL);
|
83
|
+
store->create_folder(store, segm_idx_name);
|
88
84
|
FrtMemoryPool *mp = (FrtMemoryPool *)data;
|
89
85
|
FrtFieldsReader *fr;
|
90
86
|
FrtFieldsWriter *fw;
|
@@ -223,10 +219,10 @@ static void test_tv_single_doc(TestCase *tc, void *data)
|
|
223
219
|
frt_store_close(store);
|
224
220
|
}
|
225
221
|
|
226
|
-
static void test_tv_multi_doc(TestCase *tc, void *data)
|
227
|
-
{
|
222
|
+
static void test_tv_multi_doc(TestCase *tc, void *data) {
|
228
223
|
int i, j;
|
229
224
|
FrtStore *store = frt_open_ram_store(NULL);
|
225
|
+
store->create_folder(store, segm_idx_name);
|
230
226
|
FrtMemoryPool *mp = (FrtMemoryPool *)data;
|
231
227
|
FrtFieldsReader *fr;
|
232
228
|
FrtFieldsWriter *fw;
|
@@ -356,8 +352,7 @@ static void test_tv_multi_doc(TestCase *tc, void *data)
|
|
356
352
|
}
|
357
353
|
|
358
354
|
|
359
|
-
TestSuite *ts_term_vectors(TestSuite *suite)
|
360
|
-
{
|
355
|
+
TestSuite *ts_term_vectors(TestSuite *suite) {
|
361
356
|
FrtMemoryPool *mp = frt_mp_new();
|
362
357
|
|
363
358
|
suite = ADD_SUITE(suite);
|
@@ -8,8 +8,7 @@ static void raise_eof(void) {
|
|
8
8
|
/**
|
9
9
|
* Test the basic test functions
|
10
10
|
*/
|
11
|
-
static void test_asserts(TestCase *tc, void *data)
|
12
|
-
{
|
11
|
+
static void test_asserts(TestCase *tc, void *data) {
|
13
12
|
char *p[10];
|
14
13
|
|
15
14
|
int ia1[3] = { 1, 2, 3 };
|
@@ -33,8 +32,7 @@ static void test_asserts(TestCase *tc, void *data)
|
|
33
32
|
Araise(FRT_EOF_ERROR, &raise_eof, NULL);
|
34
33
|
}
|
35
34
|
|
36
|
-
static void raise_nothing(void *nothing)
|
37
|
-
{
|
35
|
+
static void raise_nothing(void *nothing) {
|
38
36
|
(void)nothing;
|
39
37
|
}
|
40
38
|
/**
|
@@ -42,8 +40,7 @@ static void raise_nothing(void *nothing)
|
|
42
40
|
* passing but if you want to check the tests work in case of failure, run
|
43
41
|
* this test.
|
44
42
|
*/
|
45
|
-
static void test_failures(TestCase *tc, void *data)
|
46
|
-
{
|
43
|
+
static void test_failures(TestCase *tc, void *data) {
|
47
44
|
void *q = NULL;
|
48
45
|
void *p = frt_emalloc(10);
|
49
46
|
|
@@ -69,8 +66,7 @@ static void test_failures(TestCase *tc, void *data)
|
|
69
66
|
Araise(EXCEPTION, &raise_nothing, NULL);
|
70
67
|
}
|
71
68
|
|
72
|
-
TestSuite *ts_test(TestSuite *suite)
|
73
|
-
{
|
69
|
+
TestSuite *ts_test(TestSuite *suite) {
|
74
70
|
suite = ADD_SUITE(suite);
|
75
71
|
|
76
72
|
tst_run_test(suite, test_asserts, NULL);
|
@@ -9,8 +9,7 @@ extern char *num_to_str(int num);
|
|
9
9
|
|
10
10
|
#define test_num(n, expected) num = num_to_str(n); Asequal(expected, num); free(num)
|
11
11
|
|
12
|
-
static void test_number_to_str(TestCase *tc, void *data)
|
13
|
-
{
|
12
|
+
static void test_number_to_str(TestCase *tc, void *data) {
|
14
13
|
char *num;
|
15
14
|
(void)data;
|
16
15
|
test_num(0, "zero");
|
@@ -42,8 +41,7 @@ void dummy_log(const void *fmt, ...) {(void)fmt;}
|
|
42
41
|
#define tlog dummy_log
|
43
42
|
#endif
|
44
43
|
|
45
|
-
static void do_delete_doc(FrtIndex *index)
|
46
|
-
{
|
44
|
+
static void do_delete_doc(FrtIndex *index) {
|
47
45
|
int size;
|
48
46
|
if ((size = frt_index_size(index)) > 0) {
|
49
47
|
int doc_num = rand() % size;
|
@@ -60,20 +58,18 @@ static void do_delete_doc(FrtIndex *index)
|
|
60
58
|
ID id;
|
61
59
|
ID contents;
|
62
60
|
|
63
|
-
static void do_add_doc(FrtIndex *index)
|
64
|
-
{
|
61
|
+
static void do_add_doc(FrtIndex *index) {
|
65
62
|
FrtDocument *doc = frt_doc_new();
|
66
63
|
int n = rand();
|
67
64
|
rb_encoding *enc = rb_enc_find("ASCII-8BIT");
|
68
|
-
frt_doc_add_field(doc, frt_df_add_data(frt_df_new(id), frt_strfmt("%d", n), enc))
|
69
|
-
frt_doc_add_field(doc, frt_df_add_data(frt_df_new(contents), num_to_str(n), enc))
|
65
|
+
frt_doc_add_field(doc, frt_df_add_data(frt_df_new(id), frt_strfmt("%d", n), enc));
|
66
|
+
frt_doc_add_field(doc, frt_df_add_data(frt_df_new(contents), num_to_str(n), enc));
|
70
67
|
tlog("Adding %d\n", n);
|
71
68
|
frt_index_add_doc(index, doc);
|
72
69
|
frt_doc_destroy(doc);
|
73
70
|
}
|
74
71
|
|
75
|
-
static void do_search(FrtIndex *index)
|
76
|
-
{
|
72
|
+
static void do_search(FrtIndex *index) {
|
77
73
|
int n = rand(), i;
|
78
74
|
char *query = num_to_str(n);
|
79
75
|
FrtTopDocs *td;
|
@@ -96,8 +92,7 @@ static void do_search(FrtIndex *index)
|
|
96
92
|
frt_td_destroy(td);
|
97
93
|
}
|
98
94
|
|
99
|
-
static void *indexing_thread(void *p)
|
100
|
-
{
|
95
|
+
static void *indexing_thread(void *p) {
|
101
96
|
int i, choice;
|
102
97
|
FrtIndex *index = (FrtIndex *)p;
|
103
98
|
|
@@ -115,16 +110,14 @@ static void *indexing_thread(void *p)
|
|
115
110
|
return NULL;
|
116
111
|
}
|
117
112
|
|
118
|
-
static void test_threading_test(TestCase *tc, void *data)
|
119
|
-
{
|
113
|
+
static void test_threading_test(TestCase *tc, void *data) {
|
120
114
|
FrtIndex *index = (FrtIndex *)data;
|
121
115
|
(void)data;
|
122
116
|
(void)tc;
|
123
117
|
indexing_thread(index);
|
124
118
|
}
|
125
119
|
|
126
|
-
static void test_threading(TestCase *tc, void *data)
|
127
|
-
{
|
120
|
+
static void test_threading(TestCase *tc, void *data) {
|
128
121
|
int i;
|
129
122
|
pthread_t thread_id[NTHREADS];
|
130
123
|
FrtIndex *index = (FrtIndex *)data;
|
@@ -140,13 +133,13 @@ static void test_threading(TestCase *tc, void *data)
|
|
140
133
|
}
|
141
134
|
}
|
142
135
|
|
143
|
-
TestSuite *ts_threading(TestSuite *suite)
|
144
|
-
{
|
136
|
+
TestSuite *ts_threading(TestSuite *suite) {
|
145
137
|
id = rb_intern("id");
|
146
138
|
contents = rb_intern("contents");
|
147
139
|
|
148
140
|
FrtAnalyzer *a = frt_letter_analyzer_new(true);
|
149
141
|
FrtStore *store = frt_open_mdbx_store("./test/testdir/store");
|
142
|
+
store->create_folder(store, segm_idx_name);
|
150
143
|
FrtIndex *index;
|
151
144
|
FrtHashSet *def_fields = frt_hs_new_ptr(NULL);
|
152
145
|
FrtFieldInfos *fis = frt_fis_new(0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM | FRT_FI_STORE_OFFSETS_BM);
|
@@ -155,7 +148,7 @@ TestSuite *ts_threading(TestSuite *suite)
|
|
155
148
|
frt_fis_deref(fis);
|
156
149
|
|
157
150
|
frt_hs_add(def_fields, (void *)contents);
|
158
|
-
store->clear_all(store);
|
151
|
+
store->clear_all(store, segm_idx_name);
|
159
152
|
index = frt_index_new(store, a, def_fields, true);
|
160
153
|
frt_hs_destroy(def_fields);
|
161
154
|
|
@@ -172,7 +165,8 @@ TestSuite *ts_threading(TestSuite *suite)
|
|
172
165
|
frt_index_destroy(index);
|
173
166
|
|
174
167
|
store = frt_open_mdbx_store("./test/testdir/store");
|
175
|
-
store->
|
168
|
+
store->create_folder(store, segm_idx_name);
|
169
|
+
store->clear_all(store, segm_idx_name);
|
176
170
|
frt_store_close(store);
|
177
171
|
|
178
172
|
return suite;
|
@@ -354,8 +354,7 @@ const char *test_word_list[] = {
|
|
354
354
|
"hippos", "dam's", "expressionists", "peewee", "troop's", NULL
|
355
355
|
};
|
356
356
|
|
357
|
-
char *make_random_string(char *buf, int max_words)
|
358
|
-
{
|
357
|
+
char *make_random_string(char *buf, int max_words) {
|
359
358
|
char *s = buf;
|
360
359
|
int num_words = 5 + rand() % (max_words - 5);
|
361
360
|
|
@@ -366,9 +365,8 @@ char *make_random_string(char *buf, int max_words)
|
|
366
365
|
return buf;
|
367
366
|
}
|
368
367
|
|
369
|
-
char *get_nth_word(char *words, char *buf, int n, int *start, int *end)
|
370
|
-
|
371
|
-
char *s = words, *e;
|
368
|
+
char *get_nth_word(const char *words, char *buf, int n, int *start, int *end) {
|
369
|
+
const char *s = words, *e;
|
372
370
|
int len;
|
373
371
|
while (n > 0) {
|
374
372
|
while (*s && *s != ' ') {
|
@@ -395,8 +393,7 @@ char *get_nth_word(char *words, char *buf, int n, int *start, int *end)
|
|
395
393
|
return buf;
|
396
394
|
}
|
397
395
|
|
398
|
-
int nth_word_eql(char *words, char *word, int n)
|
399
|
-
{
|
396
|
+
int nth_word_eql(char *words, char *word, int n) {
|
400
397
|
char *s = words;
|
401
398
|
while (n > 0) {
|
402
399
|
while (*s && *s != ' ') {
|
@@ -407,18 +404,15 @@ int nth_word_eql(char *words, char *word, int n)
|
|
407
404
|
if (*s) {
|
408
405
|
if (strncmp(s, word, strlen(word)) == 0) {
|
409
406
|
return 1;
|
410
|
-
}
|
411
|
-
else {
|
407
|
+
} else {
|
412
408
|
return 0;
|
413
409
|
}
|
414
|
-
}
|
415
|
-
else {
|
410
|
+
} else {
|
416
411
|
return 0;
|
417
412
|
}
|
418
413
|
}
|
419
414
|
|
420
|
-
int s2l(const char *str, int *arr)
|
421
|
-
{
|
415
|
+
int s2l(const char *str, int *arr) {
|
422
416
|
int i = 0;
|
423
417
|
int num = 0;
|
424
418
|
const char *p = str;
|
@@ -438,8 +432,7 @@ int s2l(const char *str, int *arr)
|
|
438
432
|
return i;
|
439
433
|
}
|
440
434
|
|
441
|
-
bool frt_ary_includes(int *array, int size, int val)
|
442
|
-
{
|
435
|
+
bool frt_ary_includes(int *array, int size, int val) {
|
443
436
|
bool found = false;
|
444
437
|
int i;
|
445
438
|
for (i = 0; i < size; i++) {
|
@@ -503,8 +496,7 @@ static const char *GROUPS[] = {
|
|
503
496
|
|
504
497
|
static const int K = 1000;
|
505
498
|
|
506
|
-
static char *under_1000(int val)
|
507
|
-
{
|
499
|
+
static char *under_1000(int val) {
|
508
500
|
const char *hundreds = (val >= 100) ? DIGITS[val/100] : "";
|
509
501
|
const char *_and = "";
|
510
502
|
const char *tens = "";
|
@@ -522,8 +514,7 @@ static char *under_1000(int val)
|
|
522
514
|
return frt_strfmt("%s%s%s%s", hundreds, _and, tens, digits);
|
523
515
|
}
|
524
516
|
|
525
|
-
static char *group(int val, int level)
|
526
|
-
{
|
517
|
+
static char *group(int val, int level) {
|
527
518
|
char *res;
|
528
519
|
if (val >= K) {
|
529
520
|
char *above = group(val/K, level+1);
|
@@ -538,8 +529,7 @@ static char *group(int val, int level)
|
|
538
529
|
return res;
|
539
530
|
}
|
540
531
|
|
541
|
-
char *num_to_str(int num)
|
542
|
-
{
|
532
|
+
char *num_to_str(int num) {
|
543
533
|
char *res;
|
544
534
|
if (num < 0) {
|
545
535
|
char *neg;
|
@@ -15,7 +15,7 @@
|
|
15
15
|
extern const char *test_word_list[];
|
16
16
|
|
17
17
|
extern char *make_random_string(char *buf, int num_words);
|
18
|
-
extern char *get_nth_word(char *words, char *buf, int n, int *s, int *e);
|
18
|
+
extern char *get_nth_word(const char *words, char *buf, int n, int *s, int *e);
|
19
19
|
extern int nth_word_eql(char *words, char *word, int n);
|
20
20
|
extern int s2l(const char *str, int *arr);
|
21
21
|
extern bool frt_ary_includes(int *array, int size, int val);
|
@@ -40,8 +40,7 @@ TestSuite *ts_term_vectors(TestSuite *suite);
|
|
40
40
|
TestSuite *ts_test(TestSuite *suite);
|
41
41
|
TestSuite *ts_threading(TestSuite *suite);
|
42
42
|
|
43
|
-
const struct test_list
|
44
|
-
{
|
43
|
+
const struct test_list {
|
45
44
|
TestSuite *(*func)(TestSuite *suite);
|
46
45
|
} all_tests[] = {
|
47
46
|
{ts_1710},
|
@@ -130,7 +130,7 @@ module Isomorfeus
|
|
130
130
|
options[:dir] = @dir
|
131
131
|
options[:lock_retry_time]||= 2
|
132
132
|
@options = options
|
133
|
-
if (!@dir.
|
133
|
+
if (!@dir.exist?("segments")) || options[:create]
|
134
134
|
IndexWriter.new(options).close
|
135
135
|
end
|
136
136
|
options[:analyzer]||= Ferret::Analysis::StandardAnalyzer.new
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: isomorfeus-ferret
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.17.
|
4
|
+
version: 0.17.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Biedermann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oj
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.13.23
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: msgpack
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.6.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.6.0
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,12 +208,18 @@ files:
|
|
194
208
|
- ext/isomorfeus_ferret_ext/frt_bitvector.c
|
195
209
|
- ext/isomorfeus_ferret_ext/frt_bitvector.h
|
196
210
|
- ext/isomorfeus_ferret_ext/frt_config.h
|
211
|
+
- ext/isomorfeus_ferret_ext/frt_doc_field.c
|
212
|
+
- ext/isomorfeus_ferret_ext/frt_doc_field.h
|
197
213
|
- ext/isomorfeus_ferret_ext/frt_document.c
|
198
214
|
- ext/isomorfeus_ferret_ext/frt_document.h
|
199
215
|
- ext/isomorfeus_ferret_ext/frt_except.c
|
200
216
|
- ext/isomorfeus_ferret_ext/frt_except.h
|
201
217
|
- ext/isomorfeus_ferret_ext/frt_field_index.c
|
202
218
|
- ext/isomorfeus_ferret_ext/frt_field_index.h
|
219
|
+
- ext/isomorfeus_ferret_ext/frt_field_info.c
|
220
|
+
- ext/isomorfeus_ferret_ext/frt_field_info.h
|
221
|
+
- ext/isomorfeus_ferret_ext/frt_field_infos.c
|
222
|
+
- ext/isomorfeus_ferret_ext/frt_field_infos.h
|
203
223
|
- ext/isomorfeus_ferret_ext/frt_filter.c
|
204
224
|
- ext/isomorfeus_ferret_ext/frt_global.c
|
205
225
|
- ext/isomorfeus_ferret_ext/frt_global.h
|
@@ -393,7 +413,7 @@ metadata:
|
|
393
413
|
source_code_uri: https://github.com/isomorfeus/isomorfeus-ferret
|
394
414
|
post_install_message: |2+
|
395
415
|
|
396
|
-
isomorfeus-ferret 0.17.
|
416
|
+
isomorfeus-ferret 0.17.3:
|
397
417
|
|
398
418
|
Development in progress:
|
399
419
|
- It may eat all your files, when hungry!
|
@@ -414,7 +434,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
414
434
|
- !ruby/object:Gem::Version
|
415
435
|
version: '0'
|
416
436
|
requirements: []
|
417
|
-
rubygems_version: 3.4.
|
437
|
+
rubygems_version: 3.4.1
|
418
438
|
signing_key:
|
419
439
|
specification_version: 4
|
420
440
|
summary: Indexed document store for Isomorfeus.
|