isomorfeus-ferret 0.12.7 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
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