isomorfeus-ferret 0.14.1 → 0.14.4

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.
@@ -25,14 +25,14 @@ void field_prop_test(TestCase *tc,
25
25
  bool store_offsets) {
26
26
  tst_ptr_equal(line_num, tc, (void *)name, (void *)fi->name);
27
27
  tst_flt_equal(line_num, tc, boost, fi->boost);
28
- tst_int_equal(line_num, tc, is_stored, fi_is_stored(fi));
29
- tst_int_equal(line_num, tc, is_compressed, fi_is_compressed(fi));
30
- tst_int_equal(line_num, tc, is_indexed, fi_is_indexed(fi));
31
- tst_int_equal(line_num, tc, is_tokenized, fi_is_tokenized(fi));
32
- tst_int_equal(line_num, tc, omit_norms, fi_omit_norms(fi));
33
- tst_int_equal(line_num, tc, store_term_vector, fi_store_term_vector(fi));
34
- tst_int_equal(line_num, tc, store_positions, fi_store_positions(fi));
35
- tst_int_equal(line_num, tc, store_offsets, fi_store_offsets(fi));
28
+ tst_int_equal(line_num, tc, is_stored, bits_is_stored(fi->bits));
29
+ tst_int_equal(line_num, tc, is_compressed, bits_is_compressed(fi->bits));
30
+ tst_int_equal(line_num, tc, is_indexed, bits_is_indexed(fi->bits));
31
+ tst_int_equal(line_num, tc, is_tokenized, bits_is_tokenized(fi->bits));
32
+ tst_int_equal(line_num, tc, omit_norms, bits_omit_norms(fi->bits));
33
+ tst_int_equal(line_num, tc, store_term_vector, bits_store_term_vector(fi->bits));
34
+ tst_int_equal(line_num, tc, store_positions, bits_store_positions(fi->bits));
35
+ tst_int_equal(line_num, tc, store_offsets, bits_store_offsets(fi->bits));
36
36
  }
37
37
 
38
38
  /****************************************************************************
@@ -45,19 +45,19 @@ static void test_fi_new(TestCase *tc, void *data)
45
45
  {
46
46
  FrtFieldInfo *fi;
47
47
  (void)data; /* suppress unused argument warning */
48
- fi = frt_fi_new(rb_intern("name"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_NO, FRT_TERM_VECTOR_NO);
48
+ fi = frt_fi_new(rb_intern("name"), 0);
49
49
  do_field_prop_test(tc, fi, rb_intern("name"), 1.0, F, F, F, F, F, F, F, F);
50
50
  frt_fi_deref(fi);
51
- fi = frt_fi_new(rb_intern("name"), FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
51
+ fi = frt_fi_new(rb_intern("name"), 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_STORE_TERM_VECTOR_BM);
52
52
  do_field_prop_test(tc, fi, rb_intern("name"), 1.0, T, F, T, T, F, T, F, F);
53
53
  frt_fi_deref(fi);
54
- fi = frt_fi_new(rb_intern("name"), FRT_STORE_YES, FRT_COMPRESSION_BROTLI, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_POSITIONS);
54
+ fi = frt_fi_new(rb_intern("name"), 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BROTLI_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM);
55
55
  do_field_prop_test(tc, fi, rb_intern("name"), 1.0, T, T, T, F, F, T, T, F);
56
56
  frt_fi_deref(fi);
57
- fi = frt_fi_new(rb_intern("name"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES_OMIT_NORMS, FRT_TERM_VECTOR_WITH_OFFSETS);
57
+ fi = frt_fi_new(rb_intern("name"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_OMIT_NORMS_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_OFFSETS_BM);
58
58
  do_field_prop_test(tc, fi, rb_intern("name"), 1.0, F, F, T, T, T, T, F, T);
59
59
  frt_fi_deref(fi);
60
- fi = frt_fi_new(rb_intern("name"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED_OMIT_NORMS, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
60
+ fi = frt_fi_new(rb_intern("name"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_OMIT_NORMS_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM | FRT_FI_STORE_OFFSETS_BM);
61
61
  fi->boost = 1000.0;
62
62
  do_field_prop_test(tc, fi, rb_intern("name"), 1000.0, F, F, T, F, T, T, T, T);
63
63
  frt_fi_deref(fi);
@@ -76,14 +76,14 @@ static void test_fis_basic(TestCase *tc, void *data)
76
76
  volatile bool arg_error = false;
77
77
  (void)data; /* suppress unused argument warning */
78
78
 
79
- fis = frt_fis_new(FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_NO, FRT_TERM_VECTOR_NO);
80
- frt_fis_add_field(fis, frt_fi_new(rb_intern("FFFFFFFF"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_NO, FRT_TERM_VECTOR_NO));
81
- frt_fis_add_field(fis, frt_fi_new(rb_intern("TFTTFTFF"), FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES));
82
- frt_fis_add_field(fis, frt_fi_new(rb_intern("TTTFFTTF"), FRT_STORE_YES, FRT_COMPRESSION_BROTLI, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_POSITIONS));
83
- frt_fis_add_field(fis, frt_fi_new(rb_intern("FFTTTTFT"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES_OMIT_NORMS, FRT_TERM_VECTOR_WITH_OFFSETS));
84
- frt_fis_add_field(fis, frt_fi_new(rb_intern("FFTFTTTT"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED_OMIT_NORMS, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS));
79
+ fis = frt_fis_new(0);
80
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("FFFFFFFF"), 0));
81
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("TFTTFTFF"), 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_STORE_TERM_VECTOR_BM));
82
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("TTTFFTTF"), 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BROTLI_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM));
83
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("FFTTTTFT"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_OMIT_NORMS_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_OFFSETS_BM));
84
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("FFTFTTTT"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_OMIT_NORMS_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM | FRT_FI_STORE_OFFSETS_BM));
85
85
 
86
- fi = frt_fi_new(rb_intern("FFTFTTTT"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED_OMIT_NORMS, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
86
+ fi = frt_fi_new(rb_intern("FFTFTTTT"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_OMIT_NORMS_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM | FRT_FI_STORE_OFFSETS_BM);
87
87
  FRT_TRY
88
88
  Apnull(frt_fis_add_field(fis, fi));
89
89
  case FRT_ARG_ERROR:
@@ -131,7 +131,7 @@ static void test_fis_with_default(TestCase *tc, void *data)
131
131
  FrtFieldInfos *fis;
132
132
  (void)data; /* suppress unused argument warning */
133
133
 
134
- fis = frt_fis_new(FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_NO, FRT_TERM_VECTOR_NO);
134
+ fis = frt_fis_new(0);
135
135
  do_field_prop_test(tc, frt_fis_get_or_add_field(fis, rb_intern("name")), rb_intern("name"), 1.0, F, F, F, F, F, F, F, F);
136
136
  do_field_prop_test(tc, frt_fis_get_or_add_field(fis, rb_intern("dave")), rb_intern("dave"), 1.0, F, F, F, F, F, F, F, F);
137
137
  do_field_prop_test(tc, frt_fis_get_or_add_field(fis, rb_intern("wert")), rb_intern("wert"), 1.0, F, F, F, F, F, F, F, F);
@@ -141,16 +141,16 @@ static void test_fis_with_default(TestCase *tc, void *data)
141
141
  Apnull(frt_fis_get_field(fis, rb_intern("random")));
142
142
  frt_fis_deref(fis);
143
143
 
144
- fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
144
+ 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);
145
145
  do_field_prop_test(tc, frt_fis_get_or_add_field(fis, rb_intern("name")), rb_intern("name"), 1.0, T, F, T, T, F, T, F, F);
146
146
  frt_fis_deref(fis);
147
- fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_BROTLI, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_POSITIONS);
147
+ fis = frt_fis_new(0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BROTLI_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM);
148
148
  do_field_prop_test(tc, frt_fis_get_or_add_field(fis, rb_intern("name")), rb_intern("name"), 1.0, T, T, T, F, F, T, T, F);
149
149
  frt_fis_deref(fis);
150
- fis = frt_fis_new(FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES_OMIT_NORMS, FRT_TERM_VECTOR_WITH_OFFSETS);
150
+ fis = frt_fis_new(0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_OMIT_NORMS_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_OFFSETS_BM);
151
151
  do_field_prop_test(tc, frt_fis_get_or_add_field(fis, rb_intern("name")), rb_intern("name"), 1.0, F, F, T, T, T, T, F, T);
152
152
  frt_fis_deref(fis);
153
- fis = frt_fis_new(FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED_OMIT_NORMS, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
153
+ fis = frt_fis_new(0 | FRT_FI_IS_INDEXED_BM | FRT_FI_OMIT_NORMS_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM | FRT_FI_STORE_OFFSETS_BM);
154
154
  do_field_prop_test(tc, frt_fis_get_or_add_field(fis, rb_intern("name")), rb_intern("name"), 1.0, F, F, T, F, T, T, T, T);
155
155
  frt_fis_deref(fis);
156
156
  }
@@ -164,12 +164,12 @@ static void test_fis_rw(TestCase *tc, void *data)
164
164
  FrtOutStream *os;
165
165
  (void)data; /* suppress unused argument warning */
166
166
 
167
- fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED_OMIT_NORMS, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
168
- frt_fis_add_field(fis, frt_fi_new(rb_intern("FFFFFFFF"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_NO, FRT_TERM_VECTOR_NO));
169
- frt_fis_add_field(fis, frt_fi_new(rb_intern("TFTTFTFF"), FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES));
170
- frt_fis_add_field(fis, frt_fi_new(rb_intern("TTTFFTTF"), FRT_STORE_YES, FRT_COMPRESSION_BROTLI, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_POSITIONS));
171
- frt_fis_add_field(fis, frt_fi_new(rb_intern("FFTTTTFT"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES_OMIT_NORMS, FRT_TERM_VECTOR_WITH_OFFSETS));
172
- frt_fis_add_field(fis, frt_fi_new(rb_intern("FFTFTTTT"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED_OMIT_NORMS, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS));
167
+ fis = frt_fis_new(0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_OMIT_NORMS_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM | FRT_FI_STORE_OFFSETS_BM);
168
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("FFFFFFFF"), 0));
169
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("TFTTFTFF"), 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_STORE_TERM_VECTOR_BM));
170
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("TTTFFTTF"), 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BROTLI_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM));
171
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("FFTTTTFT"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_OMIT_NORMS_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_OFFSETS_BM));
172
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("FFTFTTTT"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_OMIT_NORMS_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM | FRT_FI_STORE_OFFSETS_BM));
173
173
  fis->fields[1]->boost = 2.0;
174
174
  fis->fields[2]->boost = 3.0;
175
175
  fis->fields[3]->boost = 4.0;
@@ -190,9 +190,9 @@ static void test_fis_rw(TestCase *tc, void *data)
190
190
  is = store->open_input(store, "fields");
191
191
  fis = frt_fis_read(is);
192
192
  frt_is_close(is);
193
- Aiequal(FRT_STORE_YES, fis->store_val);
194
- Aiequal(FRT_INDEX_UNTOKENIZED_OMIT_NORMS, fis->index);
195
- Aiequal(FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS, fis->term_vector);
193
+ Aiequal(true, bits_is_stored(fis->bits));
194
+ Aiequal(true, bits_is_indexed(fis->bits) && bits_omit_norms(fis->bits));
195
+ Aiequal(true, bits_store_term_vector(fis->bits) && bits_store_positions(fis->bits) && bits_store_offsets(fis->bits));
196
196
 
197
197
  do_field_prop_test(tc, fis->fields[0], rb_intern("FFFFFFFF"), 1.0, F, F, F, F, F, F, F, F);
198
198
  do_field_prop_test(tc, fis->fields[1], rb_intern("TFTTFTFF"), 2.0, T, F, T, T, F, T, F, F);
@@ -307,11 +307,11 @@ static FrtDocument *prepare_doc(void) {
307
307
  }
308
308
 
309
309
  static FrtFieldInfos *prepare_fis(void) {
310
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_NO);
311
- frt_fis_add_field(fis, frt_fi_new(rb_intern("ignored"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_NO, FRT_TERM_VECTOR_NO));
312
- frt_fis_add_field(fis, frt_fi_new(rb_intern("unstored"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS));
313
- frt_fis_add_field(fis, frt_fi_new(rb_intern("stored"), FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES));
314
- frt_fis_add_field(fis, frt_fi_new(rb_intern("stored_array"), FRT_STORE_YES, FRT_COMPRESSION_BROTLI, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_NO));
310
+ FrtFieldInfos *fis = frt_fis_new(0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM);
311
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("ignored"), 0));
312
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("unstored"), 0 | 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));
313
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("stored"), 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_STORE_TERM_VECTOR_BM));
314
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("stored_array"), 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BROTLI_BM | FRT_FI_IS_INDEXED_BM));
315
315
  return fis;
316
316
  }
317
317
 
@@ -19,7 +19,7 @@ const FrtConfig lucene_config = {
19
19
 
20
20
 
21
21
  static FrtFieldInfos *prep_fis(void) {
22
- return frt_fis_new(FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_NO);
22
+ return frt_fis_new(0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM);
23
23
  }
24
24
 
25
25
  static void create_index(FrtStore *store)
@@ -19,7 +19,7 @@ void prepare_filter_index(FrtStore *store)
19
19
  {
20
20
  int i;
21
21
  FrtIndexWriter *iw;
22
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_NO);
22
+ FrtFieldInfos *fis = frt_fis_new(0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM);
23
23
  rb_encoding *enc = rb_enc_find("ASCII-8BIT");
24
24
 
25
25
  num = rb_intern("num");
@@ -81,8 +81,7 @@ static void test_match_vector(TestCase *tc, void *data)
81
81
 
82
82
  static void make_index(FrtStore *store)
83
83
  {
84
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES,
85
- FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
84
+ 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);
86
85
  frt_index_create(store, fis);
87
86
  frt_fis_deref(fis);
88
87
  }
@@ -8,11 +8,11 @@
8
8
  static ID body, title, text, author, year, changing_field, compressed_field_brotli, compressed_field_bzip2, compressed_field_lz4, tag;
9
9
 
10
10
  static FrtFieldInfos *prep_all_fis(void) {
11
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_NO);
12
- frt_fis_add_field(fis, frt_fi_new(rb_intern("tv"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES));
13
- frt_fis_add_field(fis, frt_fi_new(rb_intern("tv un-t"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_YES));
14
- frt_fis_add_field(fis, frt_fi_new(rb_intern("tv+offsets"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_OFFSETS));
15
- frt_fis_add_field(fis, frt_fi_new(rb_intern("tv+offsets un-t"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_OFFSETS));
11
+ FrtFieldInfos *fis = frt_fis_new(0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM);
12
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("tv"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_STORE_TERM_VECTOR_BM));
13
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("tv un-t"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM));
14
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("tv+offsets"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_OFFSETS_BM));
15
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("tv+offsets un-t"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_OFFSETS_BM));
16
16
  return fis;
17
17
 
18
18
  }
@@ -27,8 +27,8 @@ static void destroy_docs(FrtDocument **docs, int len)
27
27
  }
28
28
 
29
29
  static FrtFieldInfos *prep_book_fis(void) {
30
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
31
- frt_fis_add_field(fis, frt_fi_new(rb_intern("year"), FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_NO, FRT_TERM_VECTOR_NO));
30
+ 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);
31
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("year"), 0 | FRT_FI_IS_STORED_BM));
32
32
  return fis;
33
33
 
34
34
  }
@@ -737,7 +737,7 @@ static void test_segment_tde_deleted_docs(TestCase *tc, void *data)
737
737
  static void test_index_create(TestCase *tc, void *data)
738
738
  {
739
739
  FrtStore *store = (FrtStore *)data;
740
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
740
+ 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);
741
741
  (void)tc;
742
742
 
743
743
  store->clear_all(store);
@@ -1191,8 +1191,8 @@ void test_iw_add_empty_tv(TestCase *tc, void *data)
1191
1191
  FrtDocument *doc;
1192
1192
  rb_encoding *enc = rb_enc_find("ASCII-8BIT");
1193
1193
 
1194
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
1195
- frt_fis_add_field(fis, frt_fi_new(rb_intern("no_tv"), FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_NO));
1194
+ FrtFieldInfos *fis = frt_fis_new(0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM | FRT_FI_STORE_TERM_VECTOR_BM);
1195
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("no_tv"), 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1196
1196
  frt_index_create(store, fis);
1197
1197
  frt_fis_deref(fis);
1198
1198
 
@@ -1348,7 +1348,7 @@ static ReaderTestEnvironment *reader_test_env_new(int type)
1348
1348
  rte->stores = FRT_ALLOC_N(FrtStore *, store_cnt);
1349
1349
  for (i = 0; i < store_cnt; i++) {
1350
1350
  FrtStore *store = rte->stores[i] = frt_open_ram_store(NULL);
1351
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
1351
+ 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);
1352
1352
  int start_doc = i * doc_cnt;
1353
1353
  int end_doc = (i + 1) * doc_cnt;
1354
1354
  if (end_doc > IR_TEST_DOC_CNT) {
@@ -1370,19 +1370,19 @@ static ReaderTestEnvironment *reader_test_env_new(int type)
1370
1370
  fis = iw->fis;
1371
1371
  if (NULL == frt_fis_get_field(fis, df->name)) {
1372
1372
  if (author == df->name) {
1373
- frt_fis_add_field(fis, frt_fi_new(author, FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_POSITIONS));
1373
+ frt_fis_add_field(fis, frt_fi_new(author, 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));
1374
1374
  } else if (title == df->name) {
1375
- frt_fis_add_field(fis, frt_fi_new(title, FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_OFFSETS));
1375
+ frt_fis_add_field(fis, frt_fi_new(title, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_OFFSETS_BM));
1376
1376
  } else if (year == df->name) {
1377
- frt_fis_add_field(fis, frt_fi_new(year, FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_NO));
1377
+ frt_fis_add_field(fis, frt_fi_new(year, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM));
1378
1378
  } else if (text == df->name) {
1379
- frt_fis_add_field(fis, frt_fi_new(text, FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_NO));
1379
+ frt_fis_add_field(fis, frt_fi_new(text, 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1380
1380
  } else if (compressed_field_brotli == df->name) {
1381
- frt_fis_add_field(fis, frt_fi_new(compressed_field_brotli, FRT_STORE_YES, FRT_COMPRESSION_BROTLI, FRT_INDEX_YES, FRT_TERM_VECTOR_NO));
1381
+ frt_fis_add_field(fis, frt_fi_new(compressed_field_brotli, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BROTLI_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1382
1382
  } else if (compressed_field_bzip2 == df->name) {
1383
- frt_fis_add_field(fis, frt_fi_new(compressed_field_bzip2, FRT_STORE_YES, FRT_COMPRESSION_BZ2, FRT_INDEX_YES, FRT_TERM_VECTOR_NO));
1383
+ frt_fis_add_field(fis, frt_fi_new(compressed_field_bzip2, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BZ2_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1384
1384
  } else if (compressed_field_lz4 == df->name) {
1385
- frt_fis_add_field(fis, frt_fi_new(compressed_field_lz4, FRT_STORE_YES, FRT_COMPRESSION_LZ4, FRT_INDEX_YES, FRT_TERM_VECTOR_NO));
1385
+ frt_fis_add_field(fis, frt_fi_new(compressed_field_lz4, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_LZ4_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1386
1386
  }
1387
1387
  }
1388
1388
  }
@@ -1398,7 +1398,7 @@ static ReaderTestEnvironment *reader_test_env_new(int type)
1398
1398
  if (type == add_indexes_reader_type) {
1399
1399
  /* Prepare store for Add Indexes test */
1400
1400
  FrtStore *store = frt_open_ram_store(NULL);
1401
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
1401
+ 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);
1402
1402
  FrtIndexReader **readers = FRT_ALLOC_N(FrtIndexReader *, rte->store_cnt);
1403
1403
  int i;
1404
1404
  for (i = 0; i < rte->store_cnt; i++) {
@@ -1432,14 +1432,14 @@ static void write_ir_test_docs(FrtStore *store)
1432
1432
  FrtIndexWriter *iw;
1433
1433
  FrtDocument **docs = prep_ir_test_docs();
1434
1434
 
1435
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
1436
- frt_fis_add_field(fis, frt_fi_new(author, FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_POSITIONS));
1437
- frt_fis_add_field(fis, frt_fi_new(title, FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_OFFSETS));
1438
- frt_fis_add_field(fis, frt_fi_new(year, FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_NO));
1439
- frt_fis_add_field(fis, frt_fi_new(text, FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_NO));
1440
- frt_fis_add_field(fis, frt_fi_new(compressed_field_brotli, FRT_STORE_YES, FRT_COMPRESSION_BROTLI, FRT_INDEX_YES, FRT_TERM_VECTOR_NO));
1441
- frt_fis_add_field(fis, frt_fi_new(compressed_field_bzip2, FRT_STORE_YES, FRT_COMPRESSION_BZ2, FRT_INDEX_YES, FRT_TERM_VECTOR_NO));
1442
- frt_fis_add_field(fis, frt_fi_new(compressed_field_lz4, FRT_STORE_YES, FRT_COMPRESSION_LZ4, FRT_INDEX_YES, FRT_TERM_VECTOR_NO));
1435
+ 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);
1436
+ frt_fis_add_field(fis, frt_fi_new(author, 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));
1437
+ frt_fis_add_field(fis, frt_fi_new(title, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_OFFSETS_BM));
1438
+ frt_fis_add_field(fis, frt_fi_new(year, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM));
1439
+ frt_fis_add_field(fis, frt_fi_new(text, 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1440
+ frt_fis_add_field(fis, frt_fi_new(compressed_field_brotli, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BROTLI_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1441
+ frt_fis_add_field(fis, frt_fi_new(compressed_field_bzip2, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_BZ2_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1442
+ frt_fis_add_field(fis, frt_fi_new(compressed_field_lz4, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_COMPRESSED_BM | FRT_FI_COMPRESSION_LZ4_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_IS_TOKENIZED_BM));
1443
1443
  frt_index_create(store, fis);
1444
1444
  frt_fis_deref(fis);
1445
1445
  config.max_buffered_docs = 5;
@@ -2135,7 +2135,7 @@ static void test_ir_multivalue_fields(TestCase *tc, void *data)
2135
2135
  FrtDocument *doc = frt_doc_new();
2136
2136
  FrtDocField *df;
2137
2137
  FrtIndexWriter *iw;
2138
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
2138
+ 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);
2139
2139
  const char *body_text = "this is the body FrtDocument Field";
2140
2140
  const char *title_text = "this is the title FrtDocument Field";
2141
2141
  const char *author_text = "this is the author FrtDocument Field";
@@ -2158,14 +2158,14 @@ static void test_ir_multivalue_fields(TestCase *tc, void *data)
2158
2158
  frt_iw_add_doc(iw, doc);
2159
2159
 
2160
2160
  fi = frt_fis_get_field(iw->fis, tag);
2161
- Aiequal(true, fi_is_stored(fi));
2162
- Aiequal(false, fi_is_compressed(fi));
2163
- Aiequal(true, fi_is_indexed(fi));
2164
- Aiequal(true, fi_is_tokenized(fi));
2165
- Aiequal(true, fi_has_norms(fi));
2166
- Aiequal(true, fi_store_term_vector(fi));
2167
- Aiequal(true, fi_store_offsets(fi));
2168
- Aiequal(true, fi_store_positions(fi));
2161
+ Aiequal(true, bits_is_stored(fi->bits));
2162
+ Aiequal(false, bits_is_compressed(fi->bits));
2163
+ Aiequal(true, bits_is_indexed(fi->bits));
2164
+ Aiequal(true, bits_is_tokenized(fi->bits));
2165
+ Aiequal(true, bits_has_norms(fi->bits));
2166
+ Aiequal(true, bits_store_term_vector(fi->bits));
2167
+ Aiequal(true, bits_store_offsets(fi->bits));
2168
+ Aiequal(true, bits_store_positions(fi->bits));
2169
2169
 
2170
2170
  frt_doc_destroy(doc);
2171
2171
  frt_iw_close(iw);
@@ -33,7 +33,7 @@ static void test_fuzziness(TestCase *tc, void *data)
33
33
  FrtSearcher *sea;
34
34
  FrtTopDocs *top_docs;
35
35
  FrtQuery *q;
36
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
36
+ 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);
37
37
  frt_index_create(store, fis);
38
38
  frt_fis_deref(fis);
39
39
 
@@ -121,7 +121,7 @@ static void test_fuzziness_long(TestCase *tc, void *data)
121
121
  FrtIndexReader *ir;
122
122
  FrtTopDocs *top_docs;
123
123
  FrtQuery *q;
124
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
124
+ 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);
125
125
  frt_index_create(store, fis);
126
126
  frt_fis_deref(fis);
127
127
 
@@ -28,7 +28,7 @@ static void span_test_setup(FrtStore *store)
28
28
  {
29
29
  const char **d;
30
30
  FrtIndexWriter *iw;
31
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
31
+ 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);
32
32
  const char *data[] = {
33
33
  "start finish one two three four five six seven",
34
34
  "start one finish two three four five six seven",
@@ -205,8 +205,8 @@ static void prepare_search_index(FrtStore *store)
205
205
  int i;
206
206
  FrtIndexWriter *iw;
207
207
 
208
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
209
- FrtFieldInfo *fi = frt_fi_new(rb_intern("empty-field"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_NO, FRT_TERM_VECTOR_NO);
208
+ 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);
209
+ FrtFieldInfo *fi = frt_fi_new(rb_intern("empty-field"), 0);
210
210
  frt_fis_add_field(fis, fi);
211
211
  frt_index_create(store, fis);
212
212
  frt_fis_deref(fis);
@@ -1701,8 +1701,8 @@ static void prepare_multi_search_index(FrtStore *store, struct Data data[],
1701
1701
  {
1702
1702
  int i;
1703
1703
  FrtIndexWriter *iw;
1704
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
1705
- FrtFieldInfo *fi = frt_fi_new(rb_intern("empty-field"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_NO, FRT_TERM_VECTOR_NO);
1704
+ 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);
1705
+ FrtFieldInfo *fi = frt_fi_new(rb_intern("empty-field"), 0);
1706
1706
  frt_fis_add_field(fis, fi);
1707
1707
  frt_index_create(store, fis);
1708
1708
  frt_fis_deref(fis);
@@ -16,10 +16,7 @@
16
16
  #define Asi_has_vals(si, name, doc_cnt, store)\
17
17
  tst_si_eql(__LINE__, tc, si, name, doc_cnt, store)
18
18
  static FrtFieldInfos dummy_fis = {
19
- FRT_STORE_NO, /* store */
20
- FRT_COMPRESSION_NONE, /* compression */
21
- FRT_INDEX_NO, /* index */
22
- FRT_TERM_VECTOR_NO, /* term_vector */
19
+ 0, /* bits */
23
20
  0, /* size */
24
21
  0, /* capa */
25
22
  NULL, /* fields */
@@ -48,7 +48,7 @@ static void sort_test_setup(FrtStore *store)
48
48
  {
49
49
  int i;
50
50
  FrtIndexWriter *iw;
51
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
51
+ 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);
52
52
  frt_index_create(store, fis);
53
53
  frt_fis_deref(fis);
54
54
 
@@ -63,7 +63,7 @@ static void sort_test_setup(FrtStore *store)
63
63
  static void sort_multi_test_setup(FrtStore *store1, FrtStore *store2)
64
64
  {
65
65
  int i;
66
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
66
+ 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);
67
67
  FrtIndexWriter *iw;
68
68
 
69
69
  frt_index_create(store1, fis);
@@ -34,12 +34,12 @@ static void test_posting(TestCase *tc, void *data)
34
34
  }
35
35
 
36
36
  static FrtFieldInfos *create_tv_fis(void) {
37
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_NO);
38
- frt_fis_add_field(fis, frt_fi_new(rb_intern("tv"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_YES));
39
- frt_fis_add_field(fis, frt_fi_new(rb_intern("tv2"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_YES));
40
- frt_fis_add_field(fis, frt_fi_new(rb_intern("tv_with_positions"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_POSITIONS));
41
- frt_fis_add_field(fis, frt_fi_new(rb_intern("tv_with_offsets"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_OFFSETS));
42
- frt_fis_add_field(fis, frt_fi_new(rb_intern("tv_with_positions_offsets"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS));
37
+ FrtFieldInfos *fis = frt_fis_new(0 | FRT_FI_IS_INDEXED_BM);
38
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("tv"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM));
39
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("tv2"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM));
40
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("tv_with_positions"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM));
41
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("tv_with_offsets"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_OFFSETS_BM));
42
+ frt_fis_add_field(fis, frt_fi_new(rb_intern("tv_with_positions_offsets"), 0 | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM | FRT_FI_STORE_POSITIONS_BM | FRT_FI_STORE_OFFSETS_BM));
43
43
  return fis;
44
44
  }
45
45
 
@@ -158,8 +158,8 @@ TestSuite *ts_threading(TestSuite *suite)
158
158
  FrtStore *store = frt_open_fs_store("./test/testdir/store");
159
159
  FrtIndex *index;
160
160
  FrtHashSet *def_fields = frt_hs_new_ptr(NULL);
161
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
162
- frt_fis_add_field(fis, frt_fi_new(id, FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_YES));
161
+ 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);
162
+ frt_fis_add_field(fis, frt_fi_new(id, 0 | FRT_FI_IS_STORED_BM | FRT_FI_IS_INDEXED_BM | FRT_FI_STORE_TERM_VECTOR_BM));
163
163
  frt_index_create(store, fis);
164
164
  frt_fis_deref(fis);
165
165
 
@@ -851,6 +851,34 @@ module Isomorfeus
851
851
  end
852
852
  end
853
853
 
854
+ # Exports the data of the stored fields as documents to a jsonl-formatted file
855
+ def export_to_jsonl(file_name)
856
+ count = 0
857
+ File.open(file_name, 'wt') do |f|
858
+ each do |doc|
859
+ json = Oj.dump(doc.to_h, mode: :strict)
860
+ f.write(json + "\n")
861
+ count += 1
862
+ end
863
+ end
864
+ count
865
+ end
866
+
867
+ # Imports documents from a jsonl-formatted file
868
+ def import_from_jsonl(file_name)
869
+ count = 0
870
+ File.open(file_name, 'rt') do |f|
871
+ f.each_line do |json|
872
+ unless json.empty?
873
+ doc = Oj.load(json, mode: :strict)
874
+ add_document(doc)
875
+ count += 1
876
+ end
877
+ end
878
+ end
879
+ count
880
+ end
881
+
854
882
  protected
855
883
  def ensure_writer_open()
856
884
  raise "tried to use a closed index" if not @open
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Ferret
3
- VERSION = '0.14.1'
3
+ VERSION = '0.14.4'
4
4
  end
5
5
  end
@@ -1,8 +1,9 @@
1
+ require 'monitor'
2
+ require 'oj'
1
3
  require 'isomorfeus_ferret_ext'
2
4
  require 'isomorfeus/ferret/version'
3
5
  require 'isomorfeus/ferret/field_symbol'
4
6
  require 'isomorfeus/ferret/stdlib_patches'
5
- require 'monitor'
6
7
  require 'isomorfeus/ferret/index/field_infos'
7
8
  require 'isomorfeus/ferret/index/index'
8
9
  require 'isomorfeus/ferret/document'
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-ferret
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.1
4
+ version: 0.14.4
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-06-01 00:00:00.000000000 Z
11
+ date: 2022-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
19
+ version: 3.13.14
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 3.13.14
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -381,13 +381,7 @@ licenses:
381
381
  metadata:
382
382
  github_repo: ssh://github.com/isomorfeus/gems
383
383
  source_code_uri: https://github.com/isomorfeus/isomorfeus-ferret
384
- post_install_message: |2+
385
-
386
- isomorfeus-ferret 0.13:
387
- Breaking change:
388
- To support Ruby string encodings, die index file format has changed.
389
- Indexes created with previous versions < 0.13 must be recreated with 0.13!
390
-
384
+ post_install_message:
391
385
  rdoc_options: []
392
386
  require_paths:
393
387
  - lib
@@ -407,4 +401,3 @@ signing_key:
407
401
  specification_version: 4
408
402
  summary: Indexed document store for Isomorfeus.
409
403
  test_files: []
410
- ...