isomorfeus-ferret 0.14.4 → 0.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +56 -6
- data/ext/isomorfeus_ferret_ext/extconf.rb +19 -1
- data/ext/isomorfeus_ferret_ext/frb_analysis.c +0 -4
- data/ext/isomorfeus_ferret_ext/frb_index.c +0 -4
- data/ext/isomorfeus_ferret_ext/frb_lazy_doc.c +4 -0
- data/ext/isomorfeus_ferret_ext/frb_qparser.c +1 -6
- data/ext/isomorfeus_ferret_ext/frb_search.c +0 -5
- data/ext/isomorfeus_ferret_ext/frb_store.c +66 -4
- data/ext/isomorfeus_ferret_ext/frb_utils.c +0 -4
- data/ext/isomorfeus_ferret_ext/frt_compound_io.c +4 -4
- data/ext/isomorfeus_ferret_ext/frt_except.c +11 -11
- data/ext/isomorfeus_ferret_ext/frt_fs_store.c +62 -88
- data/ext/isomorfeus_ferret_ext/frt_hash.c +32 -70
- data/ext/isomorfeus_ferret_ext/frt_ind.c +20 -20
- data/ext/isomorfeus_ferret_ext/frt_ind.h +1 -1
- data/ext/isomorfeus_ferret_ext/frt_index.c +78 -78
- data/ext/isomorfeus_ferret_ext/frt_index.h +11 -11
- data/ext/isomorfeus_ferret_ext/frt_mdbx_store.c +691 -0
- data/ext/isomorfeus_ferret_ext/frt_q_parser.c +4 -4
- data/ext/isomorfeus_ferret_ext/frt_ram_store.c +9 -9
- data/ext/isomorfeus_ferret_ext/frt_search.c +0 -3
- data/ext/isomorfeus_ferret_ext/frt_search.h +1 -1
- data/ext/isomorfeus_ferret_ext/frt_sort.c +2 -2
- data/ext/isomorfeus_ferret_ext/frt_store.c +6 -8
- data/ext/isomorfeus_ferret_ext/frt_store.h +43 -21
- data/ext/isomorfeus_ferret_ext/frt_threading.h +0 -16
- data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.c +0 -9
- data/ext/isomorfeus_ferret_ext/mdbx.c +33632 -0
- data/ext/isomorfeus_ferret_ext/mdbx.h +5495 -0
- data/ext/isomorfeus_ferret_ext/test.c +20 -18
- data/ext/isomorfeus_ferret_ext/test_mdbx_store.c +19 -0
- data/ext/isomorfeus_ferret_ext/test_store.c +4 -8
- data/ext/isomorfeus_ferret_ext/test_threading.c +2 -2
- data/ext/isomorfeus_ferret_ext/tests_all.h +2 -0
- data/lib/isomorfeus/ferret/version.rb +1 -1
- metadata +9 -5
@@ -242,25 +242,25 @@ FrtTermInfo *frt_te_get_ti(struct FrtTermEnum *te);
|
|
242
242
|
/* FrtSegmentTermIndex */
|
243
243
|
|
244
244
|
typedef struct FrtSegmentTermIndex {
|
245
|
-
frt_off_t
|
246
|
-
frt_off_t
|
245
|
+
frt_off_t index_ptr;
|
246
|
+
frt_off_t ptr;
|
247
247
|
int index_cnt;
|
248
248
|
int size;
|
249
249
|
char **index_terms;
|
250
250
|
int *index_term_lens;
|
251
251
|
FrtTermInfo *index_term_infos;
|
252
|
-
frt_off_t
|
252
|
+
frt_off_t *index_ptrs;
|
253
253
|
} FrtSegmentTermIndex;
|
254
254
|
|
255
255
|
/* FrtSegmentFieldIndex */
|
256
256
|
|
257
257
|
typedef struct FrtSegmentFieldIndex {
|
258
|
-
|
259
|
-
int
|
260
|
-
int
|
258
|
+
pthread_mutex_t mutex;
|
259
|
+
int skip_interval;
|
260
|
+
int index_interval;
|
261
261
|
frt_off_t index_ptr;
|
262
|
-
FrtTermEnum
|
263
|
-
FrtHash
|
262
|
+
FrtTermEnum *index_te;
|
263
|
+
FrtHash *field_dict;
|
264
264
|
} FrtSegmentFieldIndex;
|
265
265
|
|
266
266
|
/* FrtSegmentTermEnum */
|
@@ -658,9 +658,9 @@ struct FrtIndexReader {
|
|
658
658
|
FrtFieldInfos *fis;
|
659
659
|
FrtHash *cache;
|
660
660
|
FrtHash *field_index_cache;
|
661
|
-
|
661
|
+
pthread_mutex_t field_index_mutex;
|
662
662
|
frt_uchar *fake_norms;
|
663
|
-
|
663
|
+
pthread_mutex_t mutex;
|
664
664
|
bool has_changes : 1;
|
665
665
|
bool is_stale : 1;
|
666
666
|
bool is_owner : 1;
|
@@ -792,7 +792,7 @@ extern void frt_dw_reset_postings(FrtHash *postings);
|
|
792
792
|
|
793
793
|
struct FrtIndexWriter {
|
794
794
|
FrtConfig config;
|
795
|
-
|
795
|
+
pthread_mutex_t mutex;
|
796
796
|
FrtStore *store;
|
797
797
|
FrtAnalyzer *analyzer;
|
798
798
|
FrtSegmentInfos *sis;
|