isomorfeus-ferret 0.12.7 → 0.13.0

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.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +101 -19
  3. data/README.md +54 -1
  4. data/ext/isomorfeus_ferret_ext/bm_bitvector.c +22 -30
  5. data/ext/isomorfeus_ferret_ext/bm_hash.c +6 -12
  6. data/ext/isomorfeus_ferret_ext/bm_micro_string.c +3 -6
  7. data/ext/isomorfeus_ferret_ext/bm_store.c +11 -22
  8. data/ext/isomorfeus_ferret_ext/brotli_common_dictionary.c +1 -1
  9. data/ext/isomorfeus_ferret_ext/brotli_dec_decode.c +1 -1
  10. data/ext/isomorfeus_ferret_ext/bzip_blocksort.c +1094 -0
  11. data/ext/isomorfeus_ferret_ext/bzip_huffman.c +205 -0
  12. data/ext/isomorfeus_ferret_ext/bzlib.c +1572 -0
  13. data/ext/isomorfeus_ferret_ext/bzlib.h +282 -0
  14. data/ext/isomorfeus_ferret_ext/bzlib_compress.c +672 -0
  15. data/ext/isomorfeus_ferret_ext/bzlib_crctable.c +104 -0
  16. data/ext/isomorfeus_ferret_ext/bzlib_decompress.c +652 -0
  17. data/ext/isomorfeus_ferret_ext/bzlib_private.h +509 -0
  18. data/ext/isomorfeus_ferret_ext/bzlib_randtable.c +84 -0
  19. data/ext/isomorfeus_ferret_ext/fio_tmpfile.h +53 -53
  20. data/ext/isomorfeus_ferret_ext/frb_analysis.c +785 -1192
  21. data/ext/isomorfeus_ferret_ext/frb_index.c +492 -474
  22. data/ext/isomorfeus_ferret_ext/frb_qparser.c +48 -60
  23. data/ext/isomorfeus_ferret_ext/frb_search.c +1520 -1002
  24. data/ext/isomorfeus_ferret_ext/frb_store.c +96 -96
  25. data/ext/isomorfeus_ferret_ext/frb_threading.h +0 -1
  26. data/ext/isomorfeus_ferret_ext/frb_utils.c +147 -196
  27. data/ext/isomorfeus_ferret_ext/frt_analysis.c +695 -1090
  28. data/ext/isomorfeus_ferret_ext/frt_analysis.h +174 -170
  29. data/ext/isomorfeus_ferret_ext/frt_array.c +2 -4
  30. data/ext/isomorfeus_ferret_ext/frt_bitvector.c +9 -16
  31. data/ext/isomorfeus_ferret_ext/frt_bitvector.h +32 -81
  32. data/ext/isomorfeus_ferret_ext/frt_document.c +15 -20
  33. data/ext/isomorfeus_ferret_ext/frt_document.h +10 -10
  34. data/ext/isomorfeus_ferret_ext/frt_except.c +5 -12
  35. data/ext/isomorfeus_ferret_ext/frt_field_index.c +3 -3
  36. data/ext/isomorfeus_ferret_ext/frt_field_index.h +6 -7
  37. data/ext/isomorfeus_ferret_ext/frt_filter.c +35 -46
  38. data/ext/isomorfeus_ferret_ext/frt_fs_store.c +1 -0
  39. data/ext/isomorfeus_ferret_ext/frt_global.c +105 -63
  40. data/ext/isomorfeus_ferret_ext/frt_global.h +7 -3
  41. data/ext/isomorfeus_ferret_ext/frt_hash.c +1 -2
  42. data/ext/isomorfeus_ferret_ext/frt_ind.c +32 -35
  43. data/ext/isomorfeus_ferret_ext/frt_ind.h +9 -9
  44. data/ext/isomorfeus_ferret_ext/frt_index.c +580 -399
  45. data/ext/isomorfeus_ferret_ext/frt_index.h +272 -291
  46. data/ext/isomorfeus_ferret_ext/frt_mempool.c +1 -2
  47. data/ext/isomorfeus_ferret_ext/frt_multimapper.c +4 -7
  48. data/ext/isomorfeus_ferret_ext/frt_q_boolean.c +67 -91
  49. data/ext/isomorfeus_ferret_ext/frt_q_const_score.c +35 -38
  50. data/ext/isomorfeus_ferret_ext/frt_q_filtered_query.c +53 -72
  51. data/ext/isomorfeus_ferret_ext/frt_q_fuzzy.c +25 -32
  52. data/ext/isomorfeus_ferret_ext/frt_q_match_all.c +21 -23
  53. data/ext/isomorfeus_ferret_ext/frt_q_multi_term.c +66 -103
  54. data/ext/isomorfeus_ferret_ext/frt_q_parser.c +207 -195
  55. data/ext/isomorfeus_ferret_ext/frt_q_phrase.c +20 -16
  56. data/ext/isomorfeus_ferret_ext/frt_q_prefix.c +17 -14
  57. data/ext/isomorfeus_ferret_ext/frt_q_range.c +102 -131
  58. data/ext/isomorfeus_ferret_ext/frt_q_span.c +179 -178
  59. data/ext/isomorfeus_ferret_ext/frt_q_term.c +47 -60
  60. data/ext/isomorfeus_ferret_ext/frt_q_wildcard.c +18 -16
  61. data/ext/isomorfeus_ferret_ext/frt_ram_store.c +45 -84
  62. data/ext/isomorfeus_ferret_ext/frt_search.c +105 -146
  63. data/ext/isomorfeus_ferret_ext/frt_search.h +331 -320
  64. data/ext/isomorfeus_ferret_ext/frt_similarity.c +5 -13
  65. data/ext/isomorfeus_ferret_ext/frt_similarity.h +7 -12
  66. data/ext/isomorfeus_ferret_ext/frt_sort.c +105 -149
  67. data/ext/isomorfeus_ferret_ext/frt_store.c +13 -7
  68. data/ext/isomorfeus_ferret_ext/frt_store.h +10 -2
  69. data/ext/isomorfeus_ferret_ext/frt_threading.h +0 -1
  70. data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.c +21 -109
  71. data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.h +2 -32
  72. data/ext/isomorfeus_ferret_ext/lz4.c +2495 -0
  73. data/ext/isomorfeus_ferret_ext/lz4.h +774 -0
  74. data/ext/isomorfeus_ferret_ext/lz4frame.c +1899 -0
  75. data/ext/isomorfeus_ferret_ext/lz4frame.h +623 -0
  76. data/ext/isomorfeus_ferret_ext/lz4hc.c +1615 -0
  77. data/ext/isomorfeus_ferret_ext/lz4hc.h +413 -0
  78. data/ext/isomorfeus_ferret_ext/lz4xxhash.c +1030 -0
  79. data/ext/isomorfeus_ferret_ext/lz4xxhash.h +328 -0
  80. data/ext/isomorfeus_ferret_ext/stem_modules.h +0 -86
  81. data/ext/isomorfeus_ferret_ext/test.c +1 -2
  82. data/ext/isomorfeus_ferret_ext/test_1710.c +11 -12
  83. data/ext/isomorfeus_ferret_ext/test_analysis.c +590 -583
  84. data/ext/isomorfeus_ferret_ext/test_compound_io.c +1 -1
  85. data/ext/isomorfeus_ferret_ext/test_document.c +19 -15
  86. data/ext/isomorfeus_ferret_ext/test_except.c +1 -2
  87. data/ext/isomorfeus_ferret_ext/test_fields.c +59 -60
  88. data/ext/isomorfeus_ferret_ext/test_file_deleter.c +10 -27
  89. data/ext/isomorfeus_ferret_ext/test_filter.c +11 -8
  90. data/ext/isomorfeus_ferret_ext/test_hash.c +2 -2
  91. data/ext/isomorfeus_ferret_ext/test_hashset.c +1 -1
  92. data/ext/isomorfeus_ferret_ext/test_highlighter.c +15 -11
  93. data/ext/isomorfeus_ferret_ext/test_index.c +372 -365
  94. data/ext/isomorfeus_ferret_ext/test_q_const_score.c +5 -3
  95. data/ext/isomorfeus_ferret_ext/test_q_filtered.c +5 -3
  96. data/ext/isomorfeus_ferret_ext/test_q_fuzzy.c +13 -10
  97. data/ext/isomorfeus_ferret_ext/test_q_parser.c +45 -7
  98. data/ext/isomorfeus_ferret_ext/test_q_span.c +15 -12
  99. data/ext/isomorfeus_ferret_ext/test_ram_store.c +3 -3
  100. data/ext/isomorfeus_ferret_ext/test_search.c +60 -62
  101. data/ext/isomorfeus_ferret_ext/test_segments.c +5 -4
  102. data/ext/isomorfeus_ferret_ext/test_sort.c +17 -14
  103. data/ext/isomorfeus_ferret_ext/test_store.c +2 -0
  104. data/ext/isomorfeus_ferret_ext/test_term.c +3 -1
  105. data/ext/isomorfeus_ferret_ext/test_term_vectors.c +9 -10
  106. data/ext/isomorfeus_ferret_ext/test_test.c +1 -2
  107. data/ext/isomorfeus_ferret_ext/test_threading.c +9 -10
  108. data/ext/isomorfeus_ferret_ext/testhelper.c +1 -2
  109. data/lib/isomorfeus/ferret/version.rb +1 -1
  110. metadata +27 -57
  111. data/ext/isomorfeus_ferret_ext/email.rl +0 -21
  112. data/ext/isomorfeus_ferret_ext/frt_scanner.c +0 -900
  113. data/ext/isomorfeus_ferret_ext/frt_scanner.h +0 -28
  114. data/ext/isomorfeus_ferret_ext/frt_scanner_mb.c +0 -6706
  115. data/ext/isomorfeus_ferret_ext/frt_scanner_utf8.c +0 -4420
  116. data/ext/isomorfeus_ferret_ext/scanner.h +0 -28
  117. data/ext/isomorfeus_ferret_ext/scanner.in +0 -43
  118. data/ext/isomorfeus_ferret_ext/scanner.rl +0 -84
  119. data/ext/isomorfeus_ferret_ext/scanner_mb.rl +0 -200
  120. data/ext/isomorfeus_ferret_ext/scanner_utf8.rl +0 -85
  121. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_basque.c +0 -1167
  122. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_basque.h +0 -6
  123. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_catalan.c +0 -1433
  124. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_catalan.h +0 -6
  125. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_danish.c +0 -301
  126. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_danish.h +0 -6
  127. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_dutch.c +0 -590
  128. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_dutch.h +0 -6
  129. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_english.c +0 -1049
  130. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_english.h +0 -6
  131. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_finnish.c +0 -705
  132. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_finnish.h +0 -6
  133. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_french.c +0 -1239
  134. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_french.h +0 -6
  135. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_german.c +0 -477
  136. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_german.h +0 -6
  137. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_hungarian.c +0 -1217
  138. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_hungarian.h +0 -7
  139. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_indonesian.c +0 -394
  140. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_indonesian.h +0 -6
  141. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_irish.c +0 -457
  142. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_irish.h +0 -6
  143. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_italian.c +0 -1009
  144. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_italian.h +0 -6
  145. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_norwegian.c +0 -259
  146. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_norwegian.h +0 -6
  147. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_porter.c +0 -704
  148. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_porter.h +0 -6
  149. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_portuguese.c +0 -948
  150. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_portuguese.h +0 -6
  151. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_spanish.c +0 -1028
  152. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_spanish.h +0 -6
  153. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_swedish.c +0 -275
  154. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_swedish.h +0 -6
  155. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_hungarian.c +0 -849
  156. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_hungarian.h +0 -6
  157. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_romanian.c +0 -952
  158. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_romanian.h +0 -6
  159. data/ext/isomorfeus_ferret_ext/stem_KOI8_R_russian.c +0 -669
  160. data/ext/isomorfeus_ferret_ext/stem_KOI8_R_russian.h +0 -6
  161. data/ext/isomorfeus_ferret_ext/stem_modules.txt +0 -63
  162. data/ext/isomorfeus_ferret_ext/uchar-ucs4.rl +0 -1854
  163. data/ext/isomorfeus_ferret_ext/uchar-utf8.rl +0 -1999
  164. data/ext/isomorfeus_ferret_ext/url.rl +0 -27
@@ -155,7 +155,7 @@ void test_compound_io_many_files(TestCase *tc, void *data)
155
155
 
156
156
  TestSuite *ts_compound_io(TestSuite *suite)
157
157
  {
158
- FrtStore *store = frt_open_ram_store();
158
+ FrtStore *store = frt_open_ram_store(NULL);
159
159
 
160
160
  suite = ADD_SUITE(suite);
161
161
 
@@ -6,8 +6,9 @@ void test_df_standard(TestCase *tc, void *data)
6
6
  char *s;
7
7
  FrtDocField *df;
8
8
  (void)data;
9
+ rb_encoding *enc = rb_enc_find("ASCII-8BIT");
9
10
 
10
- df = frt_df_add_data(frt_df_new(rb_intern("title")), frt_estrdup("Life of Pi"));
11
+ df = frt_df_add_data(frt_df_new(rb_intern("title")), frt_estrdup("Life of Pi"), enc);
11
12
  df->destroy_data = true;
12
13
  Aiequal(1, df->size);
13
14
  Asequal("title", rb_id2name(df->name));
@@ -18,7 +19,7 @@ void test_df_standard(TestCase *tc, void *data)
18
19
  free(s);
19
20
  frt_df_destroy(df);
20
21
 
21
- df = frt_df_add_data_len(frt_df_new(rb_intern("title")), (char *)"new title", 9);
22
+ df = frt_df_add_data_len(frt_df_new(rb_intern("title")), (char *)"new title", 9, enc);
22
23
  Aiequal(1, df->size);
23
24
  Asequal("title", rb_id2name(df->name));
24
25
  Asequal("new title", df->data[0]);
@@ -32,20 +33,21 @@ void test_df_multi_fields(TestCase *tc, void *data)
32
33
  char *s;
33
34
  FrtDocField *df;
34
35
  (void)data;
36
+ rb_encoding *enc = rb_enc_find("ASCII-8BIT");
35
37
 
36
- df = frt_df_add_data(frt_df_new(rb_intern("title")), frt_estrdup("Vernon God Little"));
38
+ df = frt_df_add_data(frt_df_new(rb_intern("title")), frt_estrdup("Vernon God Little"), enc);
37
39
  df->destroy_data = true;
38
40
  Aiequal(1, df->size);
39
41
  Asequal("title", rb_id2name(df->name));
40
42
  Asequal("Vernon God Little", df->data[0]);
41
43
  Aiequal(strlen("Vernon God Little"), df->lengths[0]);
42
44
 
43
- frt_df_add_data(df, frt_estrdup("some more data"));
45
+ frt_df_add_data(df, frt_estrdup("some more data"), enc);
44
46
  Aiequal(2, df->size);
45
47
  Asequal("title: [\"Vernon God Little\", \"some more data\"]",
46
48
  s = frt_df_to_s(df));
47
49
  free(s);
48
- frt_df_add_data_len(df, frt_estrdup("and more data"), 14);
50
+ frt_df_add_data_len(df, frt_estrdup("and more data"), 14, enc);
49
51
  Aiequal(3, df->size);
50
52
  Asequal("title", rb_id2name(df->name));
51
53
  Asequal("Vernon God Little", df->data[0]);
@@ -54,13 +56,13 @@ void test_df_multi_fields(TestCase *tc, void *data)
54
56
 
55
57
  frt_df_destroy(df);
56
58
 
57
- df = frt_df_add_data(frt_df_new(rb_intern("data")), frt_estrdup("start"));
59
+ df = frt_df_add_data(frt_df_new(rb_intern("data")), frt_estrdup("start"), enc);
58
60
  df->destroy_data = true;
59
61
  Aiequal(1, df->size);
60
62
  for (i = 0; i < 1000; i++) {
61
63
  char buf[100];
62
64
  sprintf(buf, "<<%d>>", i);
63
- frt_df_add_data(df, frt_estrdup(buf));
65
+ frt_df_add_data(df, frt_estrdup(buf), enc);
64
66
  Aiequal(i + 2, df->size);
65
67
  }
66
68
  frt_df_destroy(df);
@@ -72,14 +74,15 @@ void test_doc(TestCase *tc, void *data)
72
74
  FrtDocument *doc;
73
75
  FrtDocField *df;
74
76
  (void)data;
77
+ rb_encoding *enc = rb_enc_find("ASCII-8BIT");
75
78
 
76
79
  doc = frt_doc_new();
77
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("title")), (char *)"title"));
80
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("title")), (char *)"title", enc));
78
81
  Aiequal(1, doc->size);
79
- df = frt_df_add_data(frt_df_new(rb_intern("data")), (char *)"data1");
80
- frt_df_add_data(df, (char *)"data2");
81
- frt_df_add_data(df, (char *)"data3");
82
- frt_df_add_data(df, (char *)"data4");
82
+ df = frt_df_add_data(frt_df_new(rb_intern("data")), (char *)"data1", enc);
83
+ frt_df_add_data(df, (char *)"data2", enc);
84
+ frt_df_add_data(df, (char *)"data3", enc);
85
+ frt_df_add_data(df, (char *)"data4", enc);
83
86
  frt_doc_add_field(doc, df);
84
87
  Aiequal(2, doc->size);
85
88
  Asequal("title", rb_id2name(frt_doc_get_field(doc, rb_intern("title"))->name));
@@ -100,7 +103,7 @@ void test_doc(TestCase *tc, void *data)
100
103
  char *bufc;
101
104
  sprintf(buf, "<<%d>>", i);
102
105
  bufc = frt_estrdup(buf);
103
- df = frt_df_add_data(frt_df_new(rb_intern(bufc)), bufc);
106
+ df = frt_df_add_data(frt_df_new(rb_intern(bufc)), bufc, enc);
104
107
  df->destroy_data = true;
105
108
  frt_doc_add_field(doc, df);
106
109
  Aiequal(i + 1, doc->size);
@@ -122,12 +125,13 @@ void test_double_field_exception(TestCase *tc, void *data)
122
125
  FrtDocument *doc;
123
126
  FrtDocField *volatile df = NULL;
124
127
  (void)data;
128
+ rb_encoding *enc = rb_enc_find("ASCII-8BIT");
125
129
 
126
130
  doc = frt_doc_new();
127
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("title")), (char *)"title"));
131
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("title")), (char *)"title", enc));
128
132
 
129
133
  FRT_TRY
130
- df = frt_df_add_data_len(frt_df_new(rb_intern("title")), (char *)"title", 5);
134
+ df = frt_df_add_data_len(frt_df_new(rb_intern("title")), (char *)"title", 5, enc);
131
135
  frt_doc_add_field(doc, df);
132
136
  case FRT_EXCEPTION:
133
137
  exception_thrown = true;
@@ -5,8 +5,7 @@
5
5
  static const char *msg1 = "Message One";
6
6
  static const char *msg2 = "Message Two";
7
7
 
8
- static void raise_exception()
9
- {
8
+ static void raise_exception(void) {
10
9
  FRT_RAISE(FRT_EXCEPTION, "%s", msg1);
11
10
  }
12
11
 
@@ -13,7 +13,7 @@
13
13
  void field_prop_test(TestCase *tc,
14
14
  int line_num,
15
15
  FrtFieldInfo *fi,
16
- FrtSymbol name,
16
+ ID name,
17
17
  float boost,
18
18
  bool is_stored,
19
19
  bool is_compressed,
@@ -22,8 +22,7 @@ void field_prop_test(TestCase *tc,
22
22
  bool omit_norms,
23
23
  bool store_term_vector,
24
24
  bool store_positions,
25
- bool store_offsets)
26
- {
25
+ bool store_offsets) {
27
26
  tst_ptr_equal(line_num, tc, (void *)name, (void *)fi->name);
28
27
  tst_flt_equal(line_num, tc, boost, fi->boost);
29
28
  tst_int_equal(line_num, tc, is_stored, fi_is_stored(fi));
@@ -46,19 +45,19 @@ static void test_fi_new(TestCase *tc, void *data)
46
45
  {
47
46
  FrtFieldInfo *fi;
48
47
  (void)data; /* suppress unused argument warning */
49
- fi = frt_fi_new(rb_intern("name"), FRT_STORE_NO, FRT_INDEX_NO, FRT_TERM_VECTOR_NO);
48
+ fi = frt_fi_new(rb_intern("name"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_NO, FRT_TERM_VECTOR_NO);
50
49
  do_field_prop_test(tc, fi, rb_intern("name"), 1.0, F, F, F, F, F, F, F, F);
51
50
  frt_fi_deref(fi);
52
- fi = frt_fi_new(rb_intern("name"), FRT_STORE_YES, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
51
+ fi = frt_fi_new(rb_intern("name"), FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
53
52
  do_field_prop_test(tc, fi, rb_intern("name"), 1.0, T, F, T, T, F, T, F, F);
54
53
  frt_fi_deref(fi);
55
- fi = frt_fi_new(rb_intern("name"), FRT_STORE_COMPRESS, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_POSITIONS);
54
+ fi = frt_fi_new(rb_intern("name"), FRT_STORE_YES, FRT_COMPRESSION_BROTLI, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_POSITIONS);
56
55
  do_field_prop_test(tc, fi, rb_intern("name"), 1.0, T, T, T, F, F, T, T, F);
57
56
  frt_fi_deref(fi);
58
- fi = frt_fi_new(rb_intern("name"), FRT_STORE_NO, FRT_INDEX_YES_OMIT_NORMS, FRT_TERM_VECTOR_WITH_OFFSETS);
57
+ fi = frt_fi_new(rb_intern("name"), FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES_OMIT_NORMS, FRT_TERM_VECTOR_WITH_OFFSETS);
59
58
  do_field_prop_test(tc, fi, rb_intern("name"), 1.0, F, F, T, T, T, T, F, T);
60
59
  frt_fi_deref(fi);
61
- fi = frt_fi_new(rb_intern("name"), FRT_STORE_NO, FRT_INDEX_UNTOKENIZED_OMIT_NORMS, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
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);
62
61
  fi->boost = 1000.0;
63
62
  do_field_prop_test(tc, fi, rb_intern("name"), 1000.0, F, F, T, F, T, T, T, T);
64
63
  frt_fi_deref(fi);
@@ -77,14 +76,14 @@ static void test_fis_basic(TestCase *tc, void *data)
77
76
  volatile bool arg_error = false;
78
77
  (void)data; /* suppress unused argument warning */
79
78
 
80
- fis = frt_fis_new(FRT_STORE_NO, FRT_INDEX_NO, FRT_TERM_VECTOR_NO);
81
- frt_fis_add_field(fis, frt_fi_new(rb_intern("FFFFFFFF"), FRT_STORE_NO, FRT_INDEX_NO, FRT_TERM_VECTOR_NO));
82
- frt_fis_add_field(fis, frt_fi_new(rb_intern("TFTTFTFF"), FRT_STORE_YES, FRT_INDEX_YES, FRT_TERM_VECTOR_YES));
83
- frt_fis_add_field(fis, frt_fi_new(rb_intern("TTTFFTTF"), FRT_STORE_COMPRESS, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_POSITIONS));
84
- frt_fis_add_field(fis, frt_fi_new(rb_intern("FFTTTTFT"), FRT_STORE_NO, FRT_INDEX_YES_OMIT_NORMS, FRT_TERM_VECTOR_WITH_OFFSETS));
85
- frt_fis_add_field(fis, frt_fi_new(rb_intern("FFTFTTTT"), FRT_STORE_NO, FRT_INDEX_UNTOKENIZED_OMIT_NORMS, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS));
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));
86
85
 
87
- fi = frt_fi_new(rb_intern("FFTFTTTT"), FRT_STORE_NO, FRT_INDEX_UNTOKENIZED_OMIT_NORMS, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
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);
88
87
  FRT_TRY
89
88
  Apnull(frt_fis_add_field(fis, fi));
90
89
  case FRT_ARG_ERROR:
@@ -132,7 +131,7 @@ static void test_fis_with_default(TestCase *tc, void *data)
132
131
  FrtFieldInfos *fis;
133
132
  (void)data; /* suppress unused argument warning */
134
133
 
135
- fis = frt_fis_new(FRT_STORE_NO, FRT_INDEX_NO, FRT_TERM_VECTOR_NO);
134
+ fis = frt_fis_new(FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_NO, FRT_TERM_VECTOR_NO);
136
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);
137
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);
138
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);
@@ -142,16 +141,16 @@ static void test_fis_with_default(TestCase *tc, void *data)
142
141
  Apnull(frt_fis_get_field(fis, rb_intern("random")));
143
142
  frt_fis_deref(fis);
144
143
 
145
- fis = frt_fis_new(FRT_STORE_YES, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
144
+ fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_YES);
146
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);
147
146
  frt_fis_deref(fis);
148
- fis = frt_fis_new(FRT_STORE_COMPRESS, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_POSITIONS);
147
+ fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_BROTLI, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_POSITIONS);
149
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);
150
149
  frt_fis_deref(fis);
151
- fis = frt_fis_new(FRT_STORE_NO, FRT_INDEX_YES_OMIT_NORMS, FRT_TERM_VECTOR_WITH_OFFSETS);
150
+ fis = frt_fis_new(FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES_OMIT_NORMS, FRT_TERM_VECTOR_WITH_OFFSETS);
152
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);
153
152
  frt_fis_deref(fis);
154
- fis = frt_fis_new(FRT_STORE_NO, FRT_INDEX_UNTOKENIZED_OMIT_NORMS, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
153
+ fis = frt_fis_new(FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_UNTOKENIZED_OMIT_NORMS, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
155
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);
156
155
  frt_fis_deref(fis);
157
156
  }
@@ -160,18 +159,17 @@ static void test_fis_rw(TestCase *tc, void *data)
160
159
  {
161
160
  char *str;
162
161
  FrtFieldInfos *fis;
163
- FrtStore *store = frt_open_ram_store();
162
+ FrtStore *store = frt_open_ram_store(NULL);
164
163
  FrtInStream *is;
165
164
  FrtOutStream *os;
166
165
  (void)data; /* suppress unused argument warning */
167
166
 
168
- fis = frt_fis_new(FRT_STORE_YES, FRT_INDEX_UNTOKENIZED_OMIT_NORMS,
169
- FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
170
- frt_fis_add_field(fis, frt_fi_new(rb_intern("FFFFFFFF"), FRT_STORE_NO, FRT_INDEX_NO, FRT_TERM_VECTOR_NO));
171
- frt_fis_add_field(fis, frt_fi_new(rb_intern("TFTTFTFF"), FRT_STORE_YES, FRT_INDEX_YES, FRT_TERM_VECTOR_YES));
172
- frt_fis_add_field(fis, frt_fi_new(rb_intern("TTTFFTTF"), FRT_STORE_COMPRESS, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_WITH_POSITIONS));
173
- frt_fis_add_field(fis, frt_fi_new(rb_intern("FFTTTTFT"), FRT_STORE_NO, FRT_INDEX_YES_OMIT_NORMS, FRT_TERM_VECTOR_WITH_OFFSETS));
174
- frt_fis_add_field(fis, frt_fi_new(rb_intern("FFTFTTTT"), FRT_STORE_NO, FRT_INDEX_UNTOKENIZED_OMIT_NORMS, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS));
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));
175
173
  fis->fields[1]->boost = 2.0;
176
174
  fis->fields[2]->boost = 3.0;
177
175
  fis->fields[3]->boost = 4.0;
@@ -282,45 +280,44 @@ static char *prepare_bin_data(int len)
282
280
  Assert(memcmp(mdata, df->data[index], mlen) == 0, "Data should be equal");\
283
281
  } while (0)
284
282
 
285
- static FrtDocument *prepare_doc()
286
- {
283
+ static FrtDocument *prepare_doc(void) {
287
284
  FrtDocument *doc = frt_doc_new();
288
285
  FrtDocField *df;
289
286
  char *bin_data = prepare_bin_data(BIN_DATA_LEN);
287
+ rb_encoding *enc = rb_enc_find("ASCII-8BIT");
290
288
 
291
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("ignored")), (char *)"this fld's ignored"));
292
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("unstored")), (char *)"unstored ignored"));
293
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("stored")), (char *)"Yay, a stored field"));
294
- df = frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("stored_array")), (char *)"one"));
289
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("ignored")), (char *)"this fld's ignored", enc));
290
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("unstored")), (char *)"unstored ignored", enc));
291
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("stored")), (char *)"Yay, a stored field", enc));
292
+ df = frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("stored_array")), (char *)"one", enc));
295
293
  df->destroy_data = false;
296
- frt_df_add_data(df, (char *)"two");
297
- frt_df_add_data(df, (char *)"three");
298
- frt_df_add_data(df, (char *)"four");
299
- frt_df_add_data_len(df, bin_data, BIN_DATA_LEN);
294
+ frt_df_add_data(df, (char *)"two", enc);
295
+ frt_df_add_data(df, (char *)"three", enc);
296
+ frt_df_add_data(df, (char *)"four", enc);
297
+ frt_df_add_data_len(df, bin_data, BIN_DATA_LEN, enc);
300
298
  frt_doc_add_field(doc, frt_df_add_data_len(frt_df_new(rb_intern("binary")), bin_data,
301
- BIN_DATA_LEN))->destroy_data = true;
302
- df = frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("array")), (char *)"ichi"));
303
- frt_df_add_data(df, (char *)"ni");
304
- frt_df_add_data(df, (char *)"san");
305
- frt_df_add_data(df, (char *)"yon");
306
- frt_df_add_data(df, (char *)"go");
299
+ BIN_DATA_LEN, enc))->destroy_data = true;
300
+ df = frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("array")), (char *)"ichi", enc));
301
+ frt_df_add_data(df, (char *)"ni", enc);
302
+ frt_df_add_data(df, (char *)"san", enc);
303
+ frt_df_add_data(df, (char *)"yon", enc);
304
+ frt_df_add_data(df, (char *)"go", enc);
307
305
 
308
306
  return doc;
309
307
  }
310
308
 
311
- static FrtFieldInfos *prepare_fis()
312
- {
313
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_INDEX_YES, FRT_TERM_VECTOR_NO);
314
- frt_fis_add_field(fis, frt_fi_new(rb_intern("ignored"), FRT_STORE_NO, FRT_INDEX_NO, FRT_TERM_VECTOR_NO));
315
- frt_fis_add_field(fis, frt_fi_new(rb_intern("unstored"), FRT_STORE_NO, FRT_INDEX_YES, FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS));
316
- frt_fis_add_field(fis, frt_fi_new(rb_intern("stored"), FRT_STORE_YES, FRT_INDEX_YES, FRT_TERM_VECTOR_YES));
317
- frt_fis_add_field(fis, frt_fi_new(rb_intern("stored_array"), FRT_STORE_COMPRESS, FRT_INDEX_UNTOKENIZED, FRT_TERM_VECTOR_NO));
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));
318
315
  return fis;
319
316
  }
320
317
 
321
318
  static void test_fields_rw_single(TestCase *tc, void *data)
322
319
  {
323
- FrtStore *store = frt_open_ram_store();
320
+ FrtStore *store = frt_open_ram_store(NULL);
324
321
  char *bin_data = prepare_bin_data(BIN_DATA_LEN);
325
322
  FrtDocument *doc = prepare_doc();
326
323
  FrtFieldInfos *fis = prepare_fis();
@@ -384,7 +381,7 @@ static void test_fields_rw_single(TestCase *tc, void *data)
384
381
  static void test_fields_rw_multi(TestCase *tc, void *data)
385
382
  {
386
383
  int i;
387
- FrtStore *store = frt_open_ram_store();
384
+ FrtStore *store = frt_open_ram_store(NULL);
388
385
  char *bin_data = prepare_bin_data(BIN_DATA_LEN);
389
386
  FrtDocument *doc;
390
387
  FrtFieldInfos *fis = prepare_fis();
@@ -392,6 +389,7 @@ static void test_fields_rw_multi(TestCase *tc, void *data)
392
389
  FrtFieldsReader *fr;
393
390
  FrtDocField *df;
394
391
  (void)data;
392
+ rb_encoding *enc = rb_enc_find("ASCII-8BIT");
395
393
 
396
394
  fw = frt_fw_open(store, "_as3", fis);
397
395
  for (i = 0; i < 100; i++) {
@@ -400,7 +398,7 @@ static void test_fields_rw_multi(TestCase *tc, void *data)
400
398
  sprintf(buf, "<<%d>>", i);
401
399
  bufc = frt_estrdup(buf);
402
400
  doc = frt_doc_new();
403
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern(bufc)), bufc));
401
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern(bufc)), bufc, enc));
404
402
  frt_fw_add_doc(fw, doc);
405
403
  frt_fw_write_tv_index(fw);
406
404
  frt_doc_destroy(doc);
@@ -462,7 +460,7 @@ static void test_fields_rw_multi(TestCase *tc, void *data)
462
460
 
463
461
  static void test_lazy_field_loading(TestCase *tc, void *data)
464
462
  {
465
- FrtStore *store = frt_open_ram_store();
463
+ FrtStore *store = frt_open_ram_store(NULL);
466
464
  FrtDocument *doc;
467
465
  FrtFieldInfos *fis = prepare_fis();
468
466
  FrtFieldsWriter *fw;
@@ -472,15 +470,16 @@ static void test_lazy_field_loading(TestCase *tc, void *data)
472
470
  FrtLazyDocField *lazy_df;
473
471
  char *text, buf[1000];
474
472
  (void)data;
473
+ rb_encoding *enc = rb_enc_find("ASCII-8BIT");
475
474
 
476
475
  fw = frt_fw_open(store, "_as3", fis);
477
476
  doc = frt_doc_new();
478
477
  df = frt_df_new(rb_intern("stored"));
479
- frt_df_add_data(df, (char *)"this is a stored field");
480
- frt_df_add_data(df, (char *)"to be or not to be");
481
- frt_df_add_data(df, (char *)"a stitch in time, saves nine");
482
- frt_df_add_data(df, (char *)"the quick brown fox jumped over the lazy dog");
483
- frt_df_add_data(df, (char *)"that's it folks");
478
+ frt_df_add_data(df, (char *)"this is a stored field", enc);
479
+ frt_df_add_data(df, (char *)"to be or not to be", enc);
480
+ frt_df_add_data(df, (char *)"a stitch in time, saves nine", enc);
481
+ frt_df_add_data(df, (char *)"the quick brown fox jumped over the lazy dog", enc);
482
+ frt_df_add_data(df, (char *)"that's it folks", enc);
484
483
  frt_doc_add_field(doc, df);
485
484
  frt_fw_add_doc(fw, doc);
486
485
  frt_fw_write_tv_index(fw);
@@ -18,9 +18,8 @@ const FrtConfig lucene_config = {
18
18
  };
19
19
 
20
20
 
21
- static FrtFieldInfos *prep_fis()
22
- {
23
- return frt_fis_new(FRT_STORE_NO, FRT_INDEX_YES, FRT_TERM_VECTOR_NO);
21
+ static FrtFieldInfos *prep_fis(void) {
22
+ return frt_fis_new(FRT_STORE_NO, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_NO);
24
23
  }
25
24
 
26
25
  static void create_index(FrtStore *store)
@@ -30,37 +29,21 @@ static void create_index(FrtStore *store)
30
29
  frt_fis_deref(fis);
31
30
  }
32
31
 
33
- /*
34
- static FrtIndexWriter *create_iw(FrtStore *store)
35
- {
36
- create_index(store);
37
- return frt_iw_open(store, frt_whitespace_analyzer_new(false), &frt_default_config);
38
- }
39
-
40
- static FrtIndexWriter *create_iw_conf(FrtStore *store, int max_buffered_docs,
41
- int merge_factor)
42
- {
43
- FrtConfig config = frt_default_config;
44
- config.max_buffered_docs = max_buffered_docs;
45
- config.merge_factor = merge_factor;
46
- create_index(store);
47
- return frt_iw_open(store, frt_whitespace_analyzer_new(false), &config);
48
- }
49
- */
50
-
51
32
  static FrtIndexWriter *create_iw_lucene(FrtStore *store)
52
33
  {
53
34
  create_index(store);
54
- return frt_iw_open(store, frt_whitespace_analyzer_new(false), &lucene_config);
35
+ return frt_iw_open(NULL, store, frt_whitespace_analyzer_new(false), &lucene_config);
55
36
  }
56
37
 
57
38
  static void add_doc(FrtIndexWriter *iw, int id)
58
39
  {
59
40
  FrtDocument *doc = frt_doc_new();
41
+ rb_encoding *enc = rb_enc_find("ASCII-8BIT");
42
+
60
43
  frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern(content_f)),
61
- frt_estrdup("aaa")))->destroy_data = true;
44
+ frt_estrdup("aaa"), enc))->destroy_data = true;
62
45
  frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern(id_f)),
63
- frt_strfmt("%d", id)))->destroy_data = true;
46
+ frt_strfmt("%d", id), enc))->destroy_data = true;
64
47
  frt_iw_add_doc(iw, doc);
65
48
  frt_doc_destroy(doc);
66
49
  }
@@ -96,7 +79,7 @@ static void test_delete_leftover_files(TestCase *tc, void *data)
96
79
  frt_iw_close(iw);
97
80
 
98
81
  /* Delete one doc so we get a .del file: */
99
- ir = frt_ir_open(store);
82
+ ir = frt_ir_open(NULL, store);
100
83
  frt_ir_delete_doc(ir, 7);
101
84
  Aiequal(1, ir->max_doc(ir) - ir->num_docs(ir));
102
85
 
@@ -158,7 +141,7 @@ static void test_delete_leftover_files(TestCase *tc, void *data)
158
141
 
159
142
 
160
143
  /* Open & close a writer: should delete the above files and nothing more: */
161
- frt_iw_close(frt_iw_open(store, frt_whitespace_analyzer_new(false), &lucene_config));
144
+ frt_iw_close(frt_iw_open(NULL, store, frt_whitespace_analyzer_new(false), &lucene_config));
162
145
 
163
146
  store_after = frt_store_to_s(store);
164
147
 
@@ -175,7 +158,7 @@ static void test_delete_leftover_files(TestCase *tc, void *data)
175
158
 
176
159
  TestSuite *ts_file_deleter(TestSuite *suite)
177
160
  {
178
- FrtStore *store = frt_open_ram_store();
161
+ FrtStore *store = frt_open_ram_store(NULL);
179
162
  suite = ADD_SUITE(suite);
180
163
 
181
164
  tst_run_test(suite, test_delete_leftover_files, store);
@@ -2,6 +2,8 @@
2
2
  #include "frt_search.h"
3
3
  #include "test.h"
4
4
 
5
+ #undef close
6
+
5
7
  #define FILTER_DOCS_SIZE 10
6
8
  #define ARRAY_SIZE 20
7
9
 
@@ -11,13 +13,14 @@ struct FilterData {
11
13
  const char *flipflop;
12
14
  };
13
15
 
14
- static FrtSymbol num, date, flipflop;
16
+ static ID num, date, flipflop;
15
17
 
16
18
  void prepare_filter_index(FrtStore *store)
17
19
  {
18
20
  int i;
19
21
  FrtIndexWriter *iw;
20
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_INDEX_YES, FRT_TERM_VECTOR_NO);
22
+ FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES, FRT_TERM_VECTOR_NO);
23
+ rb_encoding *enc = rb_enc_find("ASCII-8BIT");
21
24
 
22
25
  num = rb_intern("num");
23
26
  date = rb_intern("date");
@@ -39,13 +42,13 @@ void prepare_filter_index(FrtStore *store)
39
42
  frt_index_create(store, fis);
40
43
  frt_fis_deref(fis);
41
44
 
42
- iw = frt_iw_open(store, frt_whitespace_analyzer_new(false), NULL);
45
+ iw = frt_iw_open(NULL, store, frt_whitespace_analyzer_new(false), NULL);
43
46
  for (i = 0; i < FILTER_DOCS_SIZE; i++) {
44
47
  FrtDocument *doc = frt_doc_new();
45
48
  doc->boost = (float)(i+1);
46
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(num), (char *)data[i].num));
47
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(date), (char *)data[i].date));
48
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(flipflop), (char *)data[i].flipflop));
49
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(num), (char *)data[i].num, enc));
50
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(date), (char *)data[i].date, enc));
51
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(flipflop), (char *)data[i].flipflop, enc));
49
52
  frt_iw_add_doc(iw, doc);
50
53
  frt_doc_destroy(doc);
51
54
  }
@@ -313,9 +316,9 @@ TestSuite *ts_filter(TestSuite *suite)
313
316
 
314
317
  suite = ADD_SUITE(suite);
315
318
 
316
- store = frt_open_ram_store();
319
+ store = frt_open_ram_store(NULL);
317
320
  prepare_filter_index(store);
318
- ir = frt_ir_open(store);
321
+ ir = frt_ir_open(NULL, store);
319
322
  searcher = frt_isea_new(ir);
320
323
 
321
324
  tst_run_test(suite, test_range_filter, (void *)searcher);
@@ -199,8 +199,8 @@ static void test_hash_int(TestCase *tc, void *data)
199
199
  static void test_hash_ptr(TestCase *tc, void *data)
200
200
  {
201
201
  FrtHash *h = frt_h_new_ptr(&free);
202
- FrtSymbol word1 = rb_intern("one");
203
- FrtSymbol word2 = rb_intern("two");
202
+ ID word1 = rb_intern("one");
203
+ ID word2 = rb_intern("two");
204
204
  char *word_one = frt_estrdup("one");
205
205
  int i;
206
206
  char buf[100];
@@ -61,7 +61,7 @@ static void test_hs(TestCase *tc, void *data)
61
61
  static void test_hs_ptr(TestCase *tc, void *data)
62
62
  {
63
63
  FrtHashSet *hs = frt_hs_new_ptr(NULL);
64
- FrtSymbol word1 = rb_intern("one"), word2 = rb_intern("two");
64
+ ID word1 = rb_intern("one"), word2 = rb_intern("two");
65
65
  char *word_one = frt_estrdup("one");
66
66
  (void)data; /* suppress unused argument warning */
67
67
 
@@ -3,6 +3,8 @@
3
3
  #include "testhelper.h"
4
4
  #include "test.h"
5
5
 
6
+ #undef close
7
+
6
8
  #define ARRAY_SIZE 100
7
9
 
8
10
  static void test_match_vector(TestCase *tc, void *data)
@@ -79,7 +81,7 @@ static void test_match_vector(TestCase *tc, void *data)
79
81
 
80
82
  static void make_index(FrtStore *store)
81
83
  {
82
- FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_INDEX_YES,
84
+ FrtFieldInfos *fis = frt_fis_new(FRT_STORE_YES, FRT_COMPRESSION_NONE, FRT_INDEX_YES,
83
85
  FRT_TERM_VECTOR_WITH_POSITIONS_OFFSETS);
84
86
  frt_index_create(store, fis);
85
87
  frt_fis_deref(fis);
@@ -87,13 +89,14 @@ static void make_index(FrtStore *store)
87
89
 
88
90
  static void add_string_docs(FrtStore *store, const char *string[])
89
91
  {
90
- FrtIndexWriter *iw = frt_iw_open(store, frt_whitespace_analyzer_new(true), NULL);
92
+ FrtIndexWriter *iw = frt_iw_open(NULL, store, frt_whitespace_analyzer_new(true), NULL);
93
+ rb_encoding *enc = rb_enc_find("ASCII-8BIT");
91
94
 
92
95
  while (*string) {
93
96
  FrtDocument *doc = frt_doc_new();
94
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("field")), (char *)*string));
97
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("field")), (char *)*string, enc));
95
98
  frt_iw_add_doc(iw, doc);
96
- frt_doc_destroy(doc);
99
+ frt_doc_destroy(doc);
97
100
  string++;
98
101
  }
99
102
  frt_iw_close(iw);
@@ -102,7 +105,7 @@ static void add_string_docs(FrtStore *store, const char *string[])
102
105
  #define Chk_sea_mv(query, doc_num, expected) check_searcher_match_vector(tc, store, query, doc_num, expected)
103
106
  static void check_searcher_match_vector(TestCase *tc, FrtStore *store, FrtQuery *query, int doc_num, const char *expected)
104
107
  {
105
- FrtIndexReader *ir = frt_ir_open(store);
108
+ FrtIndexReader *ir = frt_ir_open(NULL, store);
106
109
  FrtSearcher *sea = frt_isea_new(ir);
107
110
  FrtMatchVector *mv = frt_searcher_get_match_vector(sea, query, doc_num, rb_intern("field"));
108
111
  static int offset_array[ARRAY_SIZE];
@@ -122,7 +125,7 @@ static void check_searcher_match_vector(TestCase *tc, FrtStore *store, FrtQuery
122
125
  #define Chk_mv(query, doc_num, expected) check_match_vector(tc, store, query, doc_num, expected)
123
126
  static void check_match_vector(TestCase *tc, FrtStore *store, FrtQuery *query, int doc_num, const char *expected)
124
127
  {
125
- FrtIndexReader *ir = frt_ir_open(store);
128
+ FrtIndexReader *ir = frt_ir_open(NULL, store);
126
129
  FrtMatchVector *mv = frt_matchv_new();
127
130
  FrtTermVector *term_vector = ir->term_vector(ir, doc_num, rb_intern("field"));
128
131
  static int offset_array[ARRAY_SIZE];
@@ -365,17 +368,18 @@ static void test_searcher_highlight(TestCase *tc, void *data)
365
368
  NULL
366
369
  };
367
370
  FrtDocument *doc = frt_doc_new();
371
+ rb_encoding *enc = rb_enc_find("ASCII-8BIT");
368
372
 
369
373
  make_index(store);
370
374
  add_string_docs(store, docs);
371
375
 
372
- iw = frt_iw_open(store, frt_letter_analyzer_new(true), NULL);
373
- frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("field")), (char *)"That's how it goes now."));
376
+ iw = frt_iw_open(NULL, store, frt_letter_analyzer_new(true), NULL);
377
+ frt_doc_add_field(doc, frt_df_add_data(frt_df_new(rb_intern("field")), (char *)"That's how it goes now.", enc));
374
378
  frt_iw_add_doc(iw, doc);
375
- frt_doc_destroy(doc);
379
+ frt_doc_destroy(doc);
376
380
  frt_iw_close(iw);
377
381
 
378
- ir = frt_ir_open(store);
382
+ ir = frt_ir_open(NULL, store);
379
383
  sea = frt_isea_new(ir);
380
384
 
381
385
  q = frt_tq_new(rb_intern("field"), "one");
@@ -529,7 +533,7 @@ static void test_searcher_highlight(TestCase *tc, void *data)
529
533
 
530
534
  TestSuite *ts_highlighter(TestSuite *suite)
531
535
  {
532
- FrtStore *store = frt_open_ram_store();
536
+ FrtStore *store = frt_open_ram_store(NULL);
533
537
 
534
538
  suite = ADD_SUITE(suite);
535
539