isomorfeus-ferret 0.13.8 → 0.13.11
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/bm_store.c +3 -3
- data/ext/isomorfeus_ferret_ext/bzlib.h +83 -82
- data/ext/isomorfeus_ferret_ext/frb_index.c +17 -23
- data/ext/isomorfeus_ferret_ext/frb_search.c +1 -4
- data/ext/isomorfeus_ferret_ext/frb_store.c +32 -34
- data/ext/isomorfeus_ferret_ext/frt_analysis.c +4 -4
- data/ext/isomorfeus_ferret_ext/frt_analysis.h +9 -9
- data/ext/isomorfeus_ferret_ext/frt_bitvector.c +1 -1
- data/ext/isomorfeus_ferret_ext/frt_bitvector.h +1 -1
- data/ext/isomorfeus_ferret_ext/frt_compound_io.c +41 -66
- data/ext/isomorfeus_ferret_ext/frt_config.h +8 -0
- data/ext/isomorfeus_ferret_ext/frt_except.c +1 -0
- data/ext/isomorfeus_ferret_ext/frt_filter.c +2 -4
- data/ext/isomorfeus_ferret_ext/frt_fs_store.c +24 -19
- data/ext/isomorfeus_ferret_ext/frt_global.c +6 -4
- data/ext/isomorfeus_ferret_ext/frt_global.h +1 -1
- data/ext/isomorfeus_ferret_ext/frt_hash.c +40 -48
- data/ext/isomorfeus_ferret_ext/frt_hash.h +14 -16
- data/ext/isomorfeus_ferret_ext/frt_hashset.c +5 -5
- data/ext/isomorfeus_ferret_ext/frt_ind.c +2 -3
- data/ext/isomorfeus_ferret_ext/frt_index.c +148 -219
- data/ext/isomorfeus_ferret_ext/frt_index.h +31 -31
- data/ext/isomorfeus_ferret_ext/frt_lang.c +1 -4
- data/ext/isomorfeus_ferret_ext/frt_multimapper.c +8 -9
- data/ext/isomorfeus_ferret_ext/frt_multimapper.h +1 -1
- data/ext/isomorfeus_ferret_ext/frt_q_boolean.c +6 -6
- data/ext/isomorfeus_ferret_ext/frt_q_match_all.c +8 -3
- data/ext/isomorfeus_ferret_ext/frt_q_parser.c +1743 -1742
- data/ext/isomorfeus_ferret_ext/frt_q_phrase.c +1 -2
- data/ext/isomorfeus_ferret_ext/frt_q_span.c +11 -10
- data/ext/isomorfeus_ferret_ext/frt_ram_store.c +24 -40
- data/ext/isomorfeus_ferret_ext/frt_search.c +29 -28
- data/ext/isomorfeus_ferret_ext/frt_search.h +18 -19
- data/ext/isomorfeus_ferret_ext/frt_store.c +47 -40
- data/ext/isomorfeus_ferret_ext/frt_store.h +46 -48
- data/ext/isomorfeus_ferret_ext/frt_threading.h +12 -5
- data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.c +4 -3
- data/ext/isomorfeus_ferret_ext/test_1710.c +1 -2
- data/ext/isomorfeus_ferret_ext/test_compound_io.c +8 -8
- data/ext/isomorfeus_ferret_ext/test_fields.c +7 -7
- data/ext/isomorfeus_ferret_ext/test_file_deleter.c +1 -1
- data/ext/isomorfeus_ferret_ext/test_filter.c +4 -3
- data/ext/isomorfeus_ferret_ext/test_fs_store.c +1 -1
- data/ext/isomorfeus_ferret_ext/test_highlighter.c +3 -1
- data/ext/isomorfeus_ferret_ext/test_index.c +61 -61
- data/ext/isomorfeus_ferret_ext/test_q_const_score.c +2 -1
- data/ext/isomorfeus_ferret_ext/test_q_filtered.c +3 -2
- data/ext/isomorfeus_ferret_ext/test_q_fuzzy.c +3 -1
- data/ext/isomorfeus_ferret_ext/test_q_span.c +8 -1
- data/ext/isomorfeus_ferret_ext/test_ram_store.c +4 -4
- data/ext/isomorfeus_ferret_ext/test_search.c +9 -4
- data/ext/isomorfeus_ferret_ext/test_segments.c +4 -3
- data/ext/isomorfeus_ferret_ext/test_sort.c +17 -9
- data/ext/isomorfeus_ferret_ext/test_term.c +4 -2
- data/ext/isomorfeus_ferret_ext/test_term_vectors.c +2 -2
- data/ext/isomorfeus_ferret_ext/test_threading.c +5 -4
- data/lib/isomorfeus/ferret/index/index.rb +8 -3
- data/lib/isomorfeus/ferret/version.rb +1 -1
- metadata +16 -2
@@ -539,7 +539,7 @@ static void prep_test_1seg_index(FrtStore *store, FrtDocument **docs,
|
|
539
539
|
|
540
540
|
frt_dw_close(dw);
|
541
541
|
frt_iw_close(iw);
|
542
|
-
|
542
|
+
frt_si_close(si);
|
543
543
|
}
|
544
544
|
|
545
545
|
/****************************************************************************
|
@@ -725,7 +725,7 @@ static void test_segment_tde_deleted_docs(TestCase *tc, void *data)
|
|
725
725
|
frt_is_close(prx_in);
|
726
726
|
frt_tir_close(tir);
|
727
727
|
frt_sfi_close(sfi);
|
728
|
-
|
728
|
+
frt_si_close(si);
|
729
729
|
}
|
730
730
|
|
731
731
|
/****************************************************************************
|
@@ -984,7 +984,7 @@ static void test_create_with_reader(TestCase *tc, void *data)
|
|
984
984
|
frt_ir_close(ir);
|
985
985
|
frt_ir_close(ir2);
|
986
986
|
store->clear_all(store);
|
987
|
-
|
987
|
+
frt_store_close(store);
|
988
988
|
frt_doc_destroy(doc);
|
989
989
|
}
|
990
990
|
|
@@ -998,7 +998,7 @@ static void test_simulated_crashed_writer(TestCase *tc, void *data)
|
|
998
998
|
{
|
999
999
|
int i;
|
1000
1000
|
long gen;
|
1001
|
-
|
1001
|
+
frt_off_t length;
|
1002
1002
|
FrtStore *store = (FrtStore *)data;
|
1003
1003
|
FrtIndexWriter *iw;
|
1004
1004
|
FrtIndexReader *ir;
|
@@ -1059,7 +1059,7 @@ static void test_simulated_corrupt_index1(TestCase *tc, void *data)
|
|
1059
1059
|
{
|
1060
1060
|
int i;
|
1061
1061
|
long gen;
|
1062
|
-
|
1062
|
+
frt_off_t length;
|
1063
1063
|
FrtStore *store = (FrtStore *)data;
|
1064
1064
|
FrtIndexWriter *iw;
|
1065
1065
|
FrtIndexReader *ir;
|
@@ -1312,7 +1312,7 @@ static void reader_test_env_destroy(ReaderTestEnvironment *rte)
|
|
1312
1312
|
{
|
1313
1313
|
int i;
|
1314
1314
|
for (i = 0; i < rte->store_cnt; i++) {
|
1315
|
-
|
1315
|
+
frt_store_close(rte->stores[i]);
|
1316
1316
|
}
|
1317
1317
|
free(rte->stores);
|
1318
1318
|
free(rte);
|
@@ -1328,6 +1328,7 @@ static FrtIndexReader *reader_test_env_ir_open(ReaderTestEnvironment *rte)
|
|
1328
1328
|
int i;
|
1329
1329
|
for (i = 0; i < rte->store_cnt; i++) {
|
1330
1330
|
sub_readers[i] = frt_ir_open(NULL, rte->stores[i]);
|
1331
|
+
FRT_DEREF(sub_readers[i]);
|
1331
1332
|
}
|
1332
1333
|
return (frt_mr_open(NULL, sub_readers, rte->store_cnt));
|
1333
1334
|
}
|
@@ -1413,7 +1414,7 @@ static ReaderTestEnvironment *reader_test_env_new(int type)
|
|
1413
1414
|
frt_iw_close(iw);
|
1414
1415
|
for (i = 0; i < rte->store_cnt; i++) {
|
1415
1416
|
frt_ir_close(readers[i]);
|
1416
|
-
|
1417
|
+
frt_store_close(rte->stores[i]);
|
1417
1418
|
}
|
1418
1419
|
free(readers);
|
1419
1420
|
rte->stores[0] = store;
|
@@ -1473,7 +1474,6 @@ static void test_ir_open_empty_index(TestCase *tc, void *data)
|
|
1473
1474
|
static void test_ir_basic_ops(TestCase *tc, void *data)
|
1474
1475
|
{
|
1475
1476
|
FrtIndexReader *ir = (FrtIndexReader *)data;
|
1476
|
-
|
1477
1477
|
Aiequal(IR_TEST_DOC_CNT, ir->num_docs(ir));
|
1478
1478
|
Aiequal(IR_TEST_DOC_CNT, ir->max_doc(ir));
|
1479
1479
|
|
@@ -1684,55 +1684,55 @@ static void test_ir_term_doc_enum(TestCase *tc, void *data)
|
|
1684
1684
|
static void test_ir_term_vectors(TestCase *tc, void *data)
|
1685
1685
|
{
|
1686
1686
|
FrtIndexReader *ir = (FrtIndexReader *)data;
|
1687
|
-
|
1688
|
-
FrtTermVector *tv = ir->term_vector(ir, 3, rb_intern("body"));
|
1689
1687
|
FrtHash *tvs;
|
1690
|
-
|
1691
|
-
|
1692
|
-
|
1693
|
-
|
1694
|
-
|
1695
|
-
|
1696
|
-
|
1697
|
-
|
1698
|
-
|
1699
|
-
|
1700
|
-
|
1701
|
-
|
1702
|
-
|
1703
|
-
|
1704
|
-
|
1705
|
-
|
1706
|
-
|
1707
|
-
|
1708
|
-
|
1709
|
-
|
1710
|
-
|
1711
|
-
|
1712
|
-
|
1713
|
-
|
1714
|
-
|
1715
|
-
|
1716
|
-
|
1717
|
-
|
1718
|
-
|
1719
|
-
|
1720
|
-
|
1721
|
-
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1725
|
-
|
1726
|
-
|
1727
|
-
|
1728
|
-
|
1729
|
-
|
1730
|
-
|
1731
|
-
|
1732
|
-
|
1733
|
-
|
1734
|
-
|
1735
|
-
|
1688
|
+
FrtTermVector *tv = ir->term_vector(ir, 3, rb_intern("body"));
|
1689
|
+
if (Apnotnull(tv)) {
|
1690
|
+
Asequal("body", rb_id2name(tv->field));
|
1691
|
+
Aiequal(4, tv->term_cnt);
|
1692
|
+
Asequal("word1", tv->terms[0].text);
|
1693
|
+
Asequal("word2", tv->terms[1].text);
|
1694
|
+
Asequal("word3", tv->terms[2].text);
|
1695
|
+
Asequal("word4", tv->terms[3].text);
|
1696
|
+
Aiequal(3, tv->terms[0].freq);
|
1697
|
+
Aiequal(2, tv->terms[0].positions[0]);
|
1698
|
+
Aiequal(4, tv->terms[0].positions[1]);
|
1699
|
+
Aiequal(7, tv->terms[0].positions[2]);
|
1700
|
+
Aiequal(12, tv->offsets[tv->terms[0].positions[0]].start);
|
1701
|
+
Aiequal(17, tv->offsets[tv->terms[0].positions[0]].end);
|
1702
|
+
Aiequal(24, tv->offsets[tv->terms[0].positions[1]].start);
|
1703
|
+
Aiequal(29, tv->offsets[tv->terms[0].positions[1]].end);
|
1704
|
+
Aiequal(42, tv->offsets[tv->terms[0].positions[2]].start);
|
1705
|
+
Aiequal(47, tv->offsets[tv->terms[0].positions[2]].end);
|
1706
|
+
|
1707
|
+
Aiequal(1, tv->terms[1].freq);
|
1708
|
+
Aiequal(3, tv->terms[1].positions[0]);
|
1709
|
+
Aiequal(18, tv->offsets[tv->terms[1].positions[0]].start);
|
1710
|
+
Aiequal(23, tv->offsets[tv->terms[1].positions[0]].end);
|
1711
|
+
|
1712
|
+
Aiequal(4, tv->terms[2].freq);
|
1713
|
+
Aiequal(0, tv->terms[2].positions[0]);
|
1714
|
+
Aiequal(5, tv->terms[2].positions[1]);
|
1715
|
+
Aiequal(8, tv->terms[2].positions[2]);
|
1716
|
+
Aiequal(9, tv->terms[2].positions[3]);
|
1717
|
+
Aiequal(0, tv->offsets[tv->terms[2].positions[0]].start);
|
1718
|
+
Aiequal(5, tv->offsets[tv->terms[2].positions[0]].end);
|
1719
|
+
Aiequal(30, tv->offsets[tv->terms[2].positions[1]].start);
|
1720
|
+
Aiequal(35, tv->offsets[tv->terms[2].positions[1]].end);
|
1721
|
+
Aiequal(48, tv->offsets[tv->terms[2].positions[2]].start);
|
1722
|
+
Aiequal(53, tv->offsets[tv->terms[2].positions[2]].end);
|
1723
|
+
Aiequal(54, tv->offsets[tv->terms[2].positions[3]].start);
|
1724
|
+
Aiequal(59, tv->offsets[tv->terms[2].positions[3]].end);
|
1725
|
+
|
1726
|
+
Aiequal(2, tv->terms[3].freq);
|
1727
|
+
Aiequal(1, tv->terms[3].positions[0]);
|
1728
|
+
Aiequal(6, tv->terms[3].positions[1]);
|
1729
|
+
Aiequal(6, tv->offsets[tv->terms[3].positions[0]].start);
|
1730
|
+
Aiequal(11, tv->offsets[tv->terms[3].positions[0]].end);
|
1731
|
+
Aiequal(36, tv->offsets[tv->terms[3].positions[1]].start);
|
1732
|
+
Aiequal(41, tv->offsets[tv->terms[3].positions[1]].end);
|
1733
|
+
|
1734
|
+
frt_tv_destroy(tv);
|
1735
|
+
}
|
1736
1736
|
|
1737
1737
|
tvs = ir->term_vectors(ir, 3);
|
1738
1738
|
Aiequal(3, tvs->size);
|
@@ -2103,7 +2103,7 @@ static void test_ir_delete(TestCase *tc, void *data)
|
|
2103
2103
|
frt_ir_close(ir);
|
2104
2104
|
frt_ir_close(ir2);
|
2105
2105
|
reader_test_env_destroy(rte);
|
2106
|
-
|
2106
|
+
frt_store_close(store);
|
2107
2107
|
}
|
2108
2108
|
|
2109
2109
|
static void test_ir_read_while_optimizing(TestCase *tc, void *data)
|
@@ -2167,7 +2167,7 @@ static void test_ir_multivalue_fields(TestCase *tc, void *data)
|
|
2167
2167
|
Aiequal(true, fi_store_offsets(fi));
|
2168
2168
|
Aiequal(true, fi_store_positions(fi));
|
2169
2169
|
|
2170
|
-
|
2170
|
+
frt_doc_destroy(doc);
|
2171
2171
|
frt_iw_close(iw);
|
2172
2172
|
|
2173
2173
|
ir = frt_ir_open(NULL, store);
|
@@ -2193,7 +2193,7 @@ static void test_ir_multivalue_fields(TestCase *tc, void *data)
|
|
2193
2193
|
Aiequal(1, df->size);
|
2194
2194
|
Asequal(author_text, df->data[0]);
|
2195
2195
|
|
2196
|
-
|
2196
|
+
frt_doc_destroy(doc);
|
2197
2197
|
frt_ir_delete_doc(ir, 0);
|
2198
2198
|
frt_ir_close(ir);
|
2199
2199
|
}
|
@@ -2324,10 +2324,10 @@ TestSuite *ts_index(TestSuite *suite)
|
|
2324
2324
|
fs_store = frt_open_fs_store(TEST_DIR);
|
2325
2325
|
tst_run_test_with_name(suite, test_ir_read_while_optimizing, fs_store, "test_ir_read_while_optimizing_on_disk");
|
2326
2326
|
fs_store->clear_all(fs_store);
|
2327
|
-
|
2327
|
+
frt_store_close(fs_store);
|
2328
2328
|
|
2329
2329
|
tst_run_test(suite, test_ir_multivalue_fields, store);
|
2330
2330
|
|
2331
|
-
|
2331
|
+
frt_store_close(store);
|
2332
2332
|
return suite;
|
2333
2333
|
}
|
@@ -80,7 +80,8 @@ TestSuite *ts_q_const_score(TestSuite *suite)
|
|
80
80
|
tst_run_test(suite, test_const_score_query, (void *)searcher);
|
81
81
|
tst_run_test(suite, test_const_score_query_hash, NULL);
|
82
82
|
|
83
|
-
frt_store_deref(store);
|
84
83
|
frt_searcher_close(searcher);
|
84
|
+
frt_ir_close(ir);
|
85
|
+
frt_store_close(store);
|
85
86
|
return suite;
|
86
87
|
}
|
@@ -57,7 +57,8 @@ TestSuite *ts_q_filtered(TestSuite *suite)
|
|
57
57
|
|
58
58
|
tst_run_test(suite, test_filtered_query, (void *)searcher);
|
59
59
|
|
60
|
-
|
61
|
-
|
60
|
+
frt_searcher_close(searcher);
|
61
|
+
frt_ir_close(ir);
|
62
|
+
frt_store_close(store);
|
62
63
|
return suite;
|
63
64
|
}
|
@@ -110,6 +110,7 @@ static void test_fuzziness(TestCase *tc, void *data)
|
|
110
110
|
frt_td_destroy(top_docs);
|
111
111
|
|
112
112
|
frt_searcher_close(sea);
|
113
|
+
frt_ir_close(ir);
|
113
114
|
}
|
114
115
|
|
115
116
|
static void test_fuzziness_long(TestCase *tc, void *data)
|
@@ -165,6 +166,7 @@ static void test_fuzziness_long(TestCase *tc, void *data)
|
|
165
166
|
frt_td_destroy(top_docs);
|
166
167
|
|
167
168
|
frt_searcher_close(sea);
|
169
|
+
frt_ir_close(ir);
|
168
170
|
}
|
169
171
|
|
170
172
|
/**
|
@@ -239,6 +241,6 @@ TestSuite *ts_q_fuzzy(TestSuite *suite)
|
|
239
241
|
tst_run_test(suite, test_fuzzy_query_hash, (void *)store);
|
240
242
|
tst_run_test(suite, test_fuzzy_query_to_s, (void *)store);
|
241
243
|
|
242
|
-
|
244
|
+
frt_store_close(store);
|
243
245
|
return suite;
|
244
246
|
}
|
@@ -100,6 +100,7 @@ static void test_span_term(TestCase *tc, void *data)
|
|
100
100
|
frt_q_deref(tq);
|
101
101
|
|
102
102
|
frt_searcher_close(sea);
|
103
|
+
frt_ir_close(ir);
|
103
104
|
}
|
104
105
|
|
105
106
|
static void test_span_term_hash(TestCase *tc, void *data)
|
@@ -169,6 +170,7 @@ static void test_span_multi_term(TestCase *tc, void *data)
|
|
169
170
|
frt_q_deref(mtq);
|
170
171
|
|
171
172
|
frt_searcher_close(sea);
|
173
|
+
frt_ir_close(ir);
|
172
174
|
}
|
173
175
|
|
174
176
|
static void test_span_multi_term_hash(TestCase *tc, void *data)
|
@@ -230,6 +232,7 @@ static void test_span_prefix(TestCase *tc, void *data)
|
|
230
232
|
frt_q_deref(prq);
|
231
233
|
|
232
234
|
frt_searcher_close(sea);
|
235
|
+
frt_ir_close(ir);
|
233
236
|
}
|
234
237
|
|
235
238
|
static void test_span_prefix_hash(TestCase *tc, void *data)
|
@@ -279,6 +282,7 @@ static void test_span_first(TestCase *tc, void *data)
|
|
279
282
|
frt_q_deref(q);
|
280
283
|
|
281
284
|
frt_searcher_close(sea);
|
285
|
+
frt_ir_close(ir);
|
282
286
|
}
|
283
287
|
|
284
288
|
static void test_span_first_hash(TestCase *tc, void *data)
|
@@ -327,6 +331,7 @@ static void test_span_or(TestCase *tc, void *data)
|
|
327
331
|
TEST_SE(q, ir, "SpanOrEnum(span_or[span_terms(field:flip),span_terms(field:flop)])@START");
|
328
332
|
frt_q_deref(q);
|
329
333
|
frt_searcher_close(sea);
|
334
|
+
frt_ir_close(ir);
|
330
335
|
}
|
331
336
|
|
332
337
|
static void test_span_or_hash(TestCase *tc, void *data)
|
@@ -407,6 +412,7 @@ static void test_span_near(TestCase *tc, void *data)
|
|
407
412
|
frt_q_deref(q);
|
408
413
|
|
409
414
|
frt_searcher_close(sea);
|
415
|
+
frt_ir_close(ir);
|
410
416
|
}
|
411
417
|
|
412
418
|
static void test_span_near_hash(TestCase *tc, void *data)
|
@@ -514,6 +520,7 @@ static void test_span_not(TestCase *tc, void *data)
|
|
514
520
|
frt_q_deref(q);
|
515
521
|
|
516
522
|
frt_searcher_close(sea);
|
523
|
+
frt_ir_close(ir);
|
517
524
|
}
|
518
525
|
|
519
526
|
static void test_span_not_hash(TestCase *tc, void *data)
|
@@ -573,6 +580,6 @@ TestSuite *ts_q_span(TestSuite *suite)
|
|
573
580
|
tst_run_test(suite, test_span_near_hash, NULL);
|
574
581
|
tst_run_test(suite, test_span_not, (void *)store);
|
575
582
|
tst_run_test(suite, test_span_not_hash, NULL);
|
576
|
-
|
583
|
+
frt_store_close(store);
|
577
584
|
return suite;
|
578
585
|
}
|
@@ -42,7 +42,7 @@ void test_write_to(TestCase *tc, void *data)
|
|
42
42
|
frt_is_close(istream);
|
43
43
|
|
44
44
|
Aiequal(17021, fs_store->length(fs_store, "_rw_funny_string.cfs"));
|
45
|
-
|
45
|
+
frt_store_close(ram_store);
|
46
46
|
ram_store = frt_open_ram_store_and_copy(NULL, fs_store, false);
|
47
47
|
|
48
48
|
istream = ram_store->open_input(ram_store, "_rw_funny_string.cfs");
|
@@ -54,8 +54,8 @@ void test_write_to(TestCase *tc, void *data)
|
|
54
54
|
Aiequal(17021, ram_store->length(ram_store, "_rw_funny_string.cfs"));
|
55
55
|
|
56
56
|
fs_store->clear_all(fs_store);
|
57
|
-
|
58
|
-
|
57
|
+
frt_store_close(fs_store);
|
58
|
+
frt_store_close(ram_store);
|
59
59
|
}
|
60
60
|
|
61
61
|
/**
|
@@ -71,7 +71,7 @@ TestSuite *ts_ram_store(TestSuite *suite)
|
|
71
71
|
|
72
72
|
tst_run_test(suite, test_write_to, NULL);
|
73
73
|
|
74
|
-
|
74
|
+
frt_store_close(store);
|
75
75
|
|
76
76
|
return suite;
|
77
77
|
}
|
@@ -1688,8 +1688,9 @@ TestSuite *ts_search(TestSuite *suite)
|
|
1688
1688
|
|
1689
1689
|
tst_run_test(suite, test_search_unscored, (void *)searcher);
|
1690
1690
|
|
1691
|
-
frt_store_deref(store);
|
1692
1691
|
frt_searcher_close(searcher);
|
1692
|
+
frt_ir_close(ir);
|
1693
|
+
frt_store_close(store);
|
1693
1694
|
return suite;
|
1694
1695
|
}
|
1695
1696
|
|
@@ -1845,7 +1846,9 @@ TestSuite *ts_multi_search(TestSuite *suite)
|
|
1845
1846
|
searchers = FRT_ALLOC_N(FrtSearcher *, 2);
|
1846
1847
|
searchers[0] = frt_isea_new(ir0);
|
1847
1848
|
searchers[1] = frt_isea_new(ir1);
|
1848
|
-
|
1849
|
+
FRT_DEREF(searchers[0]);
|
1850
|
+
FRT_DEREF(searchers[1]);
|
1851
|
+
searcher = frt_msea_new(searchers, 2);
|
1849
1852
|
|
1850
1853
|
tst_run_test(suite, test_get_doc, (void *)searcher);
|
1851
1854
|
|
@@ -1862,8 +1865,10 @@ TestSuite *ts_multi_search(TestSuite *suite)
|
|
1862
1865
|
|
1863
1866
|
tst_run_test(suite, test_query_combine, NULL);
|
1864
1867
|
|
1865
|
-
frt_store_deref(store0);
|
1866
|
-
frt_store_deref(store1);
|
1867
1868
|
frt_searcher_close(searcher);
|
1869
|
+
frt_ir_close(ir0);
|
1870
|
+
frt_ir_close(ir1);
|
1871
|
+
frt_store_close(store0);
|
1872
|
+
frt_store_close(store1);
|
1868
1873
|
return suite;
|
1869
1874
|
}
|
@@ -54,6 +54,7 @@ static void test_si(TestCase *tc, void *data)
|
|
54
54
|
si->name[1] = '2';
|
55
55
|
si->doc_cnt += 2;
|
56
56
|
si->store = store;
|
57
|
+
FRT_REF(store);
|
57
58
|
Asi_has_vals(si, "_2", 12, store);
|
58
59
|
Assert(!frt_si_has_separate_norms(si), "doesn't use compound file/have norms");
|
59
60
|
si->use_compound_file = true;
|
@@ -65,8 +66,8 @@ static void test_si(TestCase *tc, void *data)
|
|
65
66
|
Assert(!frt_si_has_separate_norms(si), "has norms in compound file");
|
66
67
|
frt_si_advance_norm_gen(si, 3);
|
67
68
|
Assert(frt_si_has_separate_norms(si), "has seperate norms");
|
68
|
-
|
69
|
-
|
69
|
+
frt_si_close(si);
|
70
|
+
frt_store_close(store);
|
70
71
|
}
|
71
72
|
|
72
73
|
/***************************************************************************
|
@@ -163,6 +164,6 @@ TestSuite *ts_segments(TestSuite *suite)
|
|
163
164
|
tst_run_test(suite, test_sis_add_del, store);
|
164
165
|
tst_run_test(suite, test_sis_rw, store);
|
165
166
|
|
166
|
-
|
167
|
+
frt_store_close(store);
|
167
168
|
return suite;
|
168
169
|
}
|
@@ -292,6 +292,8 @@ TestSuite *ts_sort(TestSuite *suite)
|
|
292
292
|
{
|
293
293
|
FrtSearcher *sea, **searchers;
|
294
294
|
FrtStore *store = frt_open_ram_store(NULL), *fs_store;
|
295
|
+
FrtIndexReader *ir0;
|
296
|
+
FrtIndexReader *ir1;
|
295
297
|
|
296
298
|
search = rb_intern("search");
|
297
299
|
string = rb_intern("string");
|
@@ -305,11 +307,13 @@ TestSuite *ts_sort(TestSuite *suite)
|
|
305
307
|
tst_run_test(suite, test_sort_field_to_s, NULL);
|
306
308
|
tst_run_test(suite, test_sort_to_s, NULL);
|
307
309
|
|
308
|
-
|
310
|
+
ir0 = frt_ir_open(NULL, store);
|
311
|
+
sea = frt_isea_new(ir0);
|
309
312
|
|
310
313
|
tst_run_test(suite, test_sorts, (void *)sea);
|
311
314
|
|
312
315
|
frt_searcher_close(sea);
|
316
|
+
frt_ir_close(ir0);
|
313
317
|
|
314
318
|
do_byte_test = false;
|
315
319
|
|
@@ -321,16 +325,20 @@ TestSuite *ts_sort(TestSuite *suite)
|
|
321
325
|
sort_multi_test_setup(store, fs_store);
|
322
326
|
|
323
327
|
searchers = FRT_ALLOC_N(FrtSearcher *, 2);
|
324
|
-
|
325
|
-
|
326
|
-
searchers[
|
327
|
-
|
328
|
-
|
328
|
+
ir0 = frt_ir_open(NULL, store);
|
329
|
+
ir1 = frt_ir_open(NULL, fs_store);
|
330
|
+
searchers[0] = frt_isea_new(ir0);
|
331
|
+
searchers[1] = frt_isea_new(ir1);
|
332
|
+
FRT_DEREF(searchers[0]);
|
333
|
+
FRT_DEREF(searchers[1]);
|
334
|
+
sea = frt_msea_new(searchers, 2);
|
329
335
|
tst_run_test(suite, test_sorts, (void *)sea);
|
330
|
-
frt_searcher_close(sea);
|
331
336
|
|
332
|
-
|
333
|
-
|
337
|
+
frt_searcher_close(sea);
|
338
|
+
frt_ir_close(ir0);
|
339
|
+
frt_ir_close(ir1);
|
340
|
+
frt_store_close(store);
|
341
|
+
frt_store_close(fs_store);
|
334
342
|
|
335
343
|
return suite;
|
336
344
|
}
|
@@ -163,7 +163,9 @@ void test_segment_term_enum(TestCase *tc, void *data)
|
|
163
163
|
add_multi_field_terms(store);
|
164
164
|
|
165
165
|
sfi = frt_sfi_open(store, "_0");
|
166
|
-
|
166
|
+
FrtInStream *is = store->open_input(store, "_0.tis");
|
167
|
+
FRT_DEREF(is);
|
168
|
+
te = frt_ste_new(is, sfi);
|
167
169
|
te->set_field(te, 0);
|
168
170
|
for (i = 0; i < 40; i++) {
|
169
171
|
int doc_count = i % 20 + 1;
|
@@ -347,7 +349,7 @@ TestSuite *ts_term(TestSuite *suite)
|
|
347
349
|
tst_run_test(suite, test_segment_term_enum, store);
|
348
350
|
tst_run_test(suite, test_term_infos_reader, store);
|
349
351
|
|
350
|
-
|
352
|
+
frt_store_close(store);
|
351
353
|
|
352
354
|
return suite;
|
353
355
|
}
|
@@ -220,7 +220,7 @@ static void test_tv_single_doc(TestCase *tc, void *data)
|
|
220
220
|
|
221
221
|
frt_fr_close(fr);
|
222
222
|
frt_fis_deref(fis);
|
223
|
-
|
223
|
+
frt_store_close(store);
|
224
224
|
}
|
225
225
|
|
226
226
|
static void test_tv_multi_doc(TestCase *tc, void *data)
|
@@ -352,7 +352,7 @@ static void test_tv_multi_doc(TestCase *tc, void *data)
|
|
352
352
|
frt_h_destroy(tvs);
|
353
353
|
frt_fr_close(fr);
|
354
354
|
frt_fis_deref(fis);
|
355
|
-
|
355
|
+
frt_store_close(store);
|
356
356
|
}
|
357
357
|
|
358
358
|
|
@@ -170,18 +170,19 @@ TestSuite *ts_threading(TestSuite *suite)
|
|
170
170
|
|
171
171
|
suite = ADD_SUITE(suite);
|
172
172
|
|
173
|
-
|
173
|
+
frt_store_close(store);
|
174
174
|
frt_a_deref(a);
|
175
175
|
|
176
176
|
tst_run_test(suite, test_number_to_str, NULL);
|
177
|
-
|
178
|
-
tst_run_test(suite,
|
177
|
+
// with pthreads these won't work if frt_micro_sleep depends on ruby threads
|
178
|
+
//tst_run_test(suite, test_threading_test, index);
|
179
|
+
//tst_run_test(suite, test_threading, index);
|
179
180
|
|
180
181
|
frt_index_destroy(index);
|
181
182
|
|
182
183
|
store = frt_open_fs_store("./test/testdir/store");
|
183
184
|
store->clear_all(store);
|
184
|
-
|
185
|
+
frt_store_close(store);
|
185
186
|
|
186
187
|
return suite;
|
187
188
|
}
|
@@ -123,7 +123,10 @@ module Isomorfeus
|
|
123
123
|
@dir = RAMDirectory.new
|
124
124
|
end
|
125
125
|
|
126
|
-
|
126
|
+
unless @dir.kind_of? MonitorMixin
|
127
|
+
@dir.extend(MonitorMixin)
|
128
|
+
@dir.new_cond
|
129
|
+
end
|
127
130
|
options[:dir] = @dir
|
128
131
|
options[:lock_retry_time]||= 2
|
129
132
|
@options = options
|
@@ -796,7 +799,10 @@ module Isomorfeus
|
|
796
799
|
elsif directory.is_a?(Ferret::Store::Directory)
|
797
800
|
@dir = directory
|
798
801
|
end
|
799
|
-
|
802
|
+
unless @dir.kind_of? MonitorMixin
|
803
|
+
@dir.extend(MonitorMixin)
|
804
|
+
@dir.new_cond
|
805
|
+
end
|
800
806
|
@options[:dir] = @dir
|
801
807
|
@options[:create_if_missing] = true
|
802
808
|
add_indexes([old_dir])
|
@@ -967,4 +973,3 @@ module Isomorfeus
|
|
967
973
|
I = Index::Index
|
968
974
|
end
|
969
975
|
end
|
970
|
-
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: isomorfeus-ferret
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Biedermann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: oj
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rake
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|