thinking-sphinx 3.4.2 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (333) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +20 -18
  3. data/Appraisals +28 -16
  4. data/CHANGELOG.markdown +538 -0
  5. data/Gemfile +9 -11
  6. data/README.textile +23 -31
  7. data/Rakefile +2 -0
  8. data/bin/console +2 -1
  9. data/bin/loadsphinx +29 -2
  10. data/lib/thinking-sphinx.rb +2 -0
  11. data/lib/thinking/sphinx.rb +2 -0
  12. data/lib/thinking_sphinx.rb +24 -13
  13. data/lib/thinking_sphinx/active_record.rb +10 -1
  14. data/lib/thinking_sphinx/active_record/association.rb +2 -0
  15. data/lib/thinking_sphinx/active_record/association_proxy.rb +2 -0
  16. data/lib/thinking_sphinx/active_record/association_proxy/attribute_finder.rb +2 -0
  17. data/lib/thinking_sphinx/active_record/association_proxy/attribute_matcher.rb +2 -0
  18. data/lib/thinking_sphinx/active_record/attribute.rb +2 -0
  19. data/lib/thinking_sphinx/active_record/attribute/sphinx_presenter.rb +2 -0
  20. data/lib/thinking_sphinx/active_record/attribute/type.rb +2 -0
  21. data/lib/thinking_sphinx/active_record/attribute/values.rb +2 -0
  22. data/lib/thinking_sphinx/active_record/base.rb +2 -0
  23. data/lib/thinking_sphinx/active_record/callbacks/delete_callbacks.rb +2 -0
  24. data/lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb +2 -0
  25. data/lib/thinking_sphinx/active_record/callbacks/update_callbacks.rb +2 -0
  26. data/lib/thinking_sphinx/active_record/column.rb +2 -0
  27. data/lib/thinking_sphinx/active_record/column_sql_presenter.rb +2 -0
  28. data/lib/thinking_sphinx/active_record/database_adapters.rb +2 -0
  29. data/lib/thinking_sphinx/active_record/database_adapters/abstract_adapter.rb +2 -0
  30. data/lib/thinking_sphinx/active_record/database_adapters/mysql_adapter.rb +2 -0
  31. data/lib/thinking_sphinx/active_record/database_adapters/postgresql_adapter.rb +2 -0
  32. data/lib/thinking_sphinx/active_record/depolymorph/association_reflection.rb +32 -0
  33. data/lib/thinking_sphinx/active_record/depolymorph/base_reflection.rb +32 -0
  34. data/lib/thinking_sphinx/active_record/depolymorph/conditions_reflection.rb +40 -0
  35. data/lib/thinking_sphinx/active_record/depolymorph/overridden_reflection.rb +35 -0
  36. data/lib/thinking_sphinx/active_record/depolymorph/scoped_reflection.rb +26 -0
  37. data/lib/thinking_sphinx/active_record/field.rb +2 -0
  38. data/lib/thinking_sphinx/active_record/filter_reflection.rb +13 -71
  39. data/lib/thinking_sphinx/active_record/index.rb +2 -0
  40. data/lib/thinking_sphinx/active_record/interpreter.rb +2 -0
  41. data/lib/thinking_sphinx/active_record/join_association.rb +2 -0
  42. data/lib/thinking_sphinx/active_record/log_subscriber.rb +2 -0
  43. data/lib/thinking_sphinx/active_record/polymorpher.rb +2 -0
  44. data/lib/thinking_sphinx/active_record/property.rb +2 -0
  45. data/lib/thinking_sphinx/active_record/property_query.rb +2 -0
  46. data/lib/thinking_sphinx/active_record/property_sql_presenter.rb +2 -0
  47. data/lib/thinking_sphinx/active_record/simple_many_query.rb +2 -0
  48. data/lib/thinking_sphinx/active_record/source_joins.rb +2 -0
  49. data/lib/thinking_sphinx/active_record/sql_builder.rb +2 -0
  50. data/lib/thinking_sphinx/active_record/sql_builder/clause_builder.rb +2 -0
  51. data/lib/thinking_sphinx/active_record/sql_builder/query.rb +2 -0
  52. data/lib/thinking_sphinx/active_record/sql_builder/statement.rb +2 -0
  53. data/lib/thinking_sphinx/active_record/sql_source.rb +15 -3
  54. data/lib/thinking_sphinx/active_record/sql_source/template.rb +2 -0
  55. data/lib/thinking_sphinx/attribute_types.rb +2 -0
  56. data/lib/thinking_sphinx/batched_search.rb +2 -0
  57. data/lib/thinking_sphinx/callbacks.rb +2 -0
  58. data/lib/thinking_sphinx/capistrano.rb +2 -0
  59. data/lib/thinking_sphinx/capistrano/v2.rb +2 -0
  60. data/lib/thinking_sphinx/capistrano/v3.rb +2 -0
  61. data/lib/thinking_sphinx/commander.rb +27 -0
  62. data/lib/thinking_sphinx/commands.rb +20 -0
  63. data/lib/thinking_sphinx/commands/base.rb +9 -1
  64. data/lib/thinking_sphinx/commands/clear_real_time.rb +22 -0
  65. data/lib/thinking_sphinx/commands/clear_sql.rb +18 -0
  66. data/lib/thinking_sphinx/commands/configure.rb +2 -0
  67. data/lib/thinking_sphinx/commands/index_real_time.rb +17 -0
  68. data/lib/thinking_sphinx/commands/index_sql.rb +25 -0
  69. data/lib/thinking_sphinx/commands/merge.rb +27 -0
  70. data/lib/thinking_sphinx/commands/merge_and_update.rb +57 -0
  71. data/lib/thinking_sphinx/commands/prepare.rb +13 -0
  72. data/lib/thinking_sphinx/commands/rotate.rb +13 -0
  73. data/lib/thinking_sphinx/commands/running.rb +13 -0
  74. data/lib/thinking_sphinx/commands/start_attached.rb +2 -0
  75. data/lib/thinking_sphinx/commands/start_detached.rb +3 -1
  76. data/lib/thinking_sphinx/commands/stop.rb +4 -2
  77. data/lib/thinking_sphinx/configuration.rb +28 -47
  78. data/lib/thinking_sphinx/configuration/consistent_ids.rb +2 -0
  79. data/lib/thinking_sphinx/configuration/defaults.rb +2 -0
  80. data/lib/thinking_sphinx/configuration/distributed_indices.rb +2 -0
  81. data/lib/thinking_sphinx/configuration/duplicate_names.rb +2 -0
  82. data/lib/thinking_sphinx/configuration/minimum_fields.rb +2 -0
  83. data/lib/thinking_sphinx/connection.rb +4 -5
  84. data/lib/thinking_sphinx/connection/client.rb +21 -0
  85. data/lib/thinking_sphinx/connection/jruby.rb +7 -2
  86. data/lib/thinking_sphinx/connection/mri.rb +2 -4
  87. data/lib/thinking_sphinx/core.rb +2 -0
  88. data/lib/thinking_sphinx/core/field.rb +2 -0
  89. data/lib/thinking_sphinx/core/index.rb +4 -1
  90. data/lib/thinking_sphinx/core/interpreter.rb +2 -0
  91. data/lib/thinking_sphinx/core/property.rb +2 -0
  92. data/lib/thinking_sphinx/core/settings.rb +2 -0
  93. data/lib/thinking_sphinx/deletion.rb +2 -0
  94. data/lib/thinking_sphinx/deltas.rb +2 -0
  95. data/lib/thinking_sphinx/deltas/default_delta.rb +2 -0
  96. data/lib/thinking_sphinx/deltas/delete_job.rb +2 -0
  97. data/lib/thinking_sphinx/deltas/index_job.rb +9 -1
  98. data/lib/thinking_sphinx/distributed.rb +2 -0
  99. data/lib/thinking_sphinx/distributed/index.rb +2 -0
  100. data/lib/thinking_sphinx/errors.rb +9 -0
  101. data/lib/thinking_sphinx/excerpter.rb +2 -0
  102. data/lib/thinking_sphinx/facet.rb +4 -3
  103. data/lib/thinking_sphinx/facet_search.rb +4 -2
  104. data/lib/thinking_sphinx/float_formatter.rb +2 -0
  105. data/lib/thinking_sphinx/frameworks.rb +2 -0
  106. data/lib/thinking_sphinx/frameworks/plain.rb +2 -0
  107. data/lib/thinking_sphinx/frameworks/rails.rb +2 -0
  108. data/lib/thinking_sphinx/guard.rb +3 -0
  109. data/lib/thinking_sphinx/guard/file.rb +2 -0
  110. data/lib/thinking_sphinx/guard/files.rb +2 -0
  111. data/lib/thinking_sphinx/guard/none.rb +7 -0
  112. data/lib/thinking_sphinx/hooks/guard_presence.rb +34 -0
  113. data/lib/thinking_sphinx/index.rb +2 -0
  114. data/lib/thinking_sphinx/index_set.rb +2 -0
  115. data/lib/thinking_sphinx/indexing_strategies/all_at_once.rb +2 -0
  116. data/lib/thinking_sphinx/indexing_strategies/one_at_a_time.rb +2 -0
  117. data/lib/thinking_sphinx/interfaces.rb +10 -0
  118. data/lib/thinking_sphinx/interfaces/base.rb +13 -0
  119. data/lib/thinking_sphinx/interfaces/daemon.rb +6 -11
  120. data/lib/thinking_sphinx/interfaces/real_time.rb +19 -14
  121. data/lib/thinking_sphinx/interfaces/sql.rb +22 -10
  122. data/lib/thinking_sphinx/logger.rb +2 -0
  123. data/lib/thinking_sphinx/masks.rb +2 -0
  124. data/lib/thinking_sphinx/masks/group_enumerators_mask.rb +6 -4
  125. data/lib/thinking_sphinx/masks/pagination_mask.rb +2 -0
  126. data/lib/thinking_sphinx/masks/scopes_mask.rb +2 -0
  127. data/lib/thinking_sphinx/masks/weight_enumerator_mask.rb +3 -1
  128. data/lib/thinking_sphinx/middlewares.rb +5 -3
  129. data/lib/thinking_sphinx/middlewares/active_record_translator.rb +2 -0
  130. data/lib/thinking_sphinx/middlewares/geographer.rb +2 -0
  131. data/lib/thinking_sphinx/middlewares/glazier.rb +2 -0
  132. data/lib/thinking_sphinx/middlewares/ids_only.rb +2 -0
  133. data/lib/thinking_sphinx/middlewares/inquirer.rb +2 -0
  134. data/lib/thinking_sphinx/middlewares/middleware.rb +2 -0
  135. data/lib/thinking_sphinx/middlewares/sphinxql.rb +4 -2
  136. data/lib/thinking_sphinx/middlewares/stale_id_checker.rb +2 -0
  137. data/lib/thinking_sphinx/middlewares/stale_id_filter.rb +2 -0
  138. data/lib/thinking_sphinx/middlewares/valid_options.rb +2 -0
  139. data/lib/thinking_sphinx/panes.rb +2 -0
  140. data/lib/thinking_sphinx/panes/attributes_pane.rb +2 -0
  141. data/lib/thinking_sphinx/panes/distance_pane.rb +2 -0
  142. data/lib/thinking_sphinx/panes/excerpts_pane.rb +2 -0
  143. data/lib/thinking_sphinx/panes/weight_pane.rb +3 -1
  144. data/lib/thinking_sphinx/query.rb +2 -0
  145. data/lib/thinking_sphinx/railtie.rb +2 -0
  146. data/lib/thinking_sphinx/rake_interface.rb +3 -1
  147. data/lib/thinking_sphinx/real_time.rb +3 -0
  148. data/lib/thinking_sphinx/real_time/attribute.rb +2 -0
  149. data/lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb +2 -0
  150. data/lib/thinking_sphinx/real_time/field.rb +2 -0
  151. data/lib/thinking_sphinx/real_time/index.rb +2 -0
  152. data/lib/thinking_sphinx/real_time/index/template.rb +2 -0
  153. data/lib/thinking_sphinx/real_time/interpreter.rb +2 -0
  154. data/lib/thinking_sphinx/real_time/populator.rb +2 -1
  155. data/lib/thinking_sphinx/real_time/property.rb +2 -0
  156. data/lib/thinking_sphinx/real_time/transcribe_instance.rb +38 -0
  157. data/lib/thinking_sphinx/real_time/transcriber.rb +18 -27
  158. data/lib/thinking_sphinx/real_time/translator.rb +3 -1
  159. data/lib/thinking_sphinx/scopes.rb +2 -0
  160. data/lib/thinking_sphinx/search.rb +2 -0
  161. data/lib/thinking_sphinx/search/batch_inquirer.rb +2 -0
  162. data/lib/thinking_sphinx/search/context.rb +2 -0
  163. data/lib/thinking_sphinx/search/glaze.rb +2 -0
  164. data/lib/thinking_sphinx/search/merger.rb +2 -0
  165. data/lib/thinking_sphinx/search/query.rb +2 -0
  166. data/lib/thinking_sphinx/search/stale_ids_exception.rb +2 -0
  167. data/lib/thinking_sphinx/settings.rb +110 -0
  168. data/lib/thinking_sphinx/sinatra.rb +2 -0
  169. data/lib/thinking_sphinx/subscribers/populator_subscriber.rb +18 -0
  170. data/lib/thinking_sphinx/tasks.rb +13 -46
  171. data/lib/thinking_sphinx/test.rb +2 -0
  172. data/lib/thinking_sphinx/utf8.rb +2 -0
  173. data/lib/thinking_sphinx/wildcard.rb +2 -0
  174. data/lib/thinking_sphinx/with_output.rb +2 -0
  175. data/spec/acceptance/association_scoping_spec.rb +2 -0
  176. data/spec/acceptance/attribute_access_spec.rb +4 -4
  177. data/spec/acceptance/attribute_updates_spec.rb +2 -0
  178. data/spec/acceptance/batch_searching_spec.rb +2 -0
  179. data/spec/acceptance/big_integers_spec.rb +2 -0
  180. data/spec/acceptance/connection_spec.rb +2 -0
  181. data/spec/acceptance/excerpts_spec.rb +1 -0
  182. data/spec/acceptance/facets_spec.rb +2 -3
  183. data/spec/acceptance/geosearching_spec.rb +3 -1
  184. data/spec/acceptance/grouping_by_attributes_spec.rb +2 -0
  185. data/spec/acceptance/index_options_spec.rb +2 -0
  186. data/spec/acceptance/indexing_spec.rb +2 -0
  187. data/spec/acceptance/merging_spec.rb +90 -0
  188. data/spec/acceptance/paginating_search_results_spec.rb +2 -0
  189. data/spec/acceptance/real_time_updates_spec.rb +2 -0
  190. data/spec/acceptance/remove_deleted_records_spec.rb +2 -0
  191. data/spec/acceptance/search_counts_spec.rb +2 -0
  192. data/spec/acceptance/search_for_just_ids_spec.rb +2 -0
  193. data/spec/acceptance/searching_across_models_spec.rb +2 -0
  194. data/spec/acceptance/searching_across_schemas_spec.rb +2 -0
  195. data/spec/acceptance/searching_on_fields_spec.rb +2 -0
  196. data/spec/acceptance/searching_with_filters_spec.rb +2 -0
  197. data/spec/acceptance/searching_with_sti_spec.rb +2 -0
  198. data/spec/acceptance/searching_within_a_model_spec.rb +2 -0
  199. data/spec/acceptance/sorting_search_results_spec.rb +2 -0
  200. data/spec/acceptance/spec_helper.rb +2 -13
  201. data/spec/acceptance/specifying_sql_spec.rb +2 -0
  202. data/spec/acceptance/sphinx_scopes_spec.rb +2 -0
  203. data/spec/acceptance/sql_deltas_spec.rb +2 -0
  204. data/spec/acceptance/support/database_cleaner.rb +2 -0
  205. data/spec/acceptance/support/sphinx_controller.rb +16 -5
  206. data/spec/acceptance/support/sphinx_helpers.rb +11 -0
  207. data/spec/acceptance/suspended_deltas_spec.rb +2 -0
  208. data/spec/internal/app/indices/admin_person_index.rb +2 -0
  209. data/spec/internal/app/indices/album_index.rb +2 -0
  210. data/spec/internal/app/indices/animal_index.rb +2 -0
  211. data/spec/internal/app/indices/article_index.rb +2 -0
  212. data/spec/internal/app/indices/bird_index.rb +2 -0
  213. data/spec/internal/app/indices/book_index.rb +2 -0
  214. data/spec/internal/app/indices/car_index.rb +2 -0
  215. data/spec/internal/app/indices/city_index.rb +2 -0
  216. data/spec/internal/app/indices/product_index.rb +2 -0
  217. data/spec/internal/app/indices/tee_index.rb +2 -0
  218. data/spec/internal/app/indices/user_index.rb +2 -0
  219. data/spec/internal/app/models/admin/person.rb +2 -0
  220. data/spec/internal/app/models/album.rb +2 -0
  221. data/spec/internal/app/models/animal.rb +2 -0
  222. data/spec/internal/app/models/article.rb +2 -0
  223. data/spec/internal/app/models/bird.rb +2 -0
  224. data/spec/internal/app/models/book.rb +2 -0
  225. data/spec/internal/app/models/car.rb +2 -0
  226. data/spec/internal/app/models/categorisation.rb +2 -0
  227. data/spec/internal/app/models/category.rb +2 -0
  228. data/spec/internal/app/models/city.rb +2 -0
  229. data/spec/internal/app/models/colour.rb +2 -0
  230. data/spec/internal/app/models/event.rb +2 -0
  231. data/spec/internal/app/models/flightless_bird.rb +2 -0
  232. data/spec/internal/app/models/genre.rb +2 -0
  233. data/spec/internal/app/models/hardcover.rb +2 -0
  234. data/spec/internal/app/models/mammal.rb +2 -0
  235. data/spec/internal/app/models/manufacturer.rb +2 -0
  236. data/spec/internal/app/models/product.rb +2 -0
  237. data/spec/internal/app/models/tag.rb +2 -0
  238. data/spec/internal/app/models/tagging.rb +2 -0
  239. data/spec/internal/app/models/tee.rb +2 -0
  240. data/spec/internal/app/models/tweet.rb +2 -0
  241. data/spec/internal/app/models/user.rb +2 -0
  242. data/spec/internal/db/schema.rb +2 -0
  243. data/spec/spec_helper.rb +4 -1
  244. data/spec/support/json_column.rb +3 -5
  245. data/spec/support/multi_schema.rb +2 -0
  246. data/spec/support/mysql.rb +25 -0
  247. data/spec/support/sphinx_yaml_helpers.rb +2 -0
  248. data/spec/thinking_sphinx/active_record/association_spec.rb +2 -0
  249. data/spec/thinking_sphinx/active_record/attribute/type_spec.rb +2 -0
  250. data/spec/thinking_sphinx/active_record/base_spec.rb +2 -0
  251. data/spec/thinking_sphinx/active_record/callbacks/delete_callbacks_spec.rb +2 -0
  252. data/spec/thinking_sphinx/active_record/callbacks/delta_callbacks_spec.rb +2 -0
  253. data/spec/thinking_sphinx/active_record/callbacks/update_callbacks_spec.rb +2 -0
  254. data/spec/thinking_sphinx/active_record/column_spec.rb +2 -0
  255. data/spec/thinking_sphinx/active_record/column_sql_presenter_spec.rb +2 -0
  256. data/spec/thinking_sphinx/active_record/database_adapters/abstract_adapter_spec.rb +2 -0
  257. data/spec/thinking_sphinx/active_record/database_adapters/mysql_adapter_spec.rb +2 -0
  258. data/spec/thinking_sphinx/active_record/database_adapters/postgresql_adapter_spec.rb +2 -0
  259. data/spec/thinking_sphinx/active_record/database_adapters_spec.rb +2 -0
  260. data/spec/thinking_sphinx/active_record/field_spec.rb +2 -0
  261. data/spec/thinking_sphinx/active_record/filter_reflection_spec.rb +100 -79
  262. data/spec/thinking_sphinx/active_record/index_spec.rb +16 -1
  263. data/spec/thinking_sphinx/active_record/interpreter_spec.rb +2 -0
  264. data/spec/thinking_sphinx/active_record/polymorpher_spec.rb +2 -0
  265. data/spec/thinking_sphinx/active_record/property_sql_presenter_spec.rb +2 -0
  266. data/spec/thinking_sphinx/active_record/sql_builder_spec.rb +2 -0
  267. data/spec/thinking_sphinx/active_record/sql_source_spec.rb +2 -0
  268. data/spec/thinking_sphinx/attribute_types_spec.rb +2 -0
  269. data/spec/thinking_sphinx/commands/clear_real_time_spec.rb +46 -0
  270. data/spec/thinking_sphinx/commands/clear_sql_spec.rb +52 -0
  271. data/spec/thinking_sphinx/commands/configure_spec.rb +2 -0
  272. data/spec/thinking_sphinx/commands/index_real_time_spec.rb +33 -0
  273. data/spec/thinking_sphinx/commands/index_sql_spec.rb +86 -0
  274. data/spec/thinking_sphinx/commands/merge_and_update_spec.rb +106 -0
  275. data/spec/thinking_sphinx/commands/merge_spec.rb +48 -0
  276. data/spec/thinking_sphinx/commands/prepare_spec.rb +23 -0
  277. data/spec/thinking_sphinx/commands/start_detached_spec.rb +2 -0
  278. data/spec/thinking_sphinx/commands/stop_spec.rb +13 -4
  279. data/spec/thinking_sphinx/configuration/minimum_fields_spec.rb +2 -0
  280. data/spec/thinking_sphinx/configuration_spec.rb +132 -6
  281. data/spec/thinking_sphinx/connection_spec.rb +2 -0
  282. data/spec/thinking_sphinx/deletion_spec.rb +2 -0
  283. data/spec/thinking_sphinx/deltas/default_delta_spec.rb +8 -1
  284. data/spec/thinking_sphinx/deltas_spec.rb +2 -0
  285. data/spec/thinking_sphinx/errors_spec.rb +2 -0
  286. data/spec/thinking_sphinx/excerpter_spec.rb +2 -0
  287. data/spec/thinking_sphinx/facet_search_spec.rb +8 -6
  288. data/spec/thinking_sphinx/hooks/guard_presence_spec.rb +30 -0
  289. data/spec/thinking_sphinx/index_set_spec.rb +2 -0
  290. data/spec/thinking_sphinx/index_spec.rb +2 -0
  291. data/spec/thinking_sphinx/interfaces/daemon_spec.rb +19 -11
  292. data/spec/thinking_sphinx/interfaces/real_time_spec.rb +43 -43
  293. data/spec/thinking_sphinx/interfaces/sql_spec.rb +76 -52
  294. data/spec/thinking_sphinx/masks/pagination_mask_spec.rb +2 -0
  295. data/spec/thinking_sphinx/masks/scopes_mask_spec.rb +2 -0
  296. data/spec/thinking_sphinx/middlewares/active_record_translator_spec.rb +2 -0
  297. data/spec/thinking_sphinx/middlewares/geographer_spec.rb +2 -0
  298. data/spec/thinking_sphinx/middlewares/glazier_spec.rb +2 -0
  299. data/spec/thinking_sphinx/middlewares/inquirer_spec.rb +2 -0
  300. data/spec/thinking_sphinx/middlewares/sphinxql_spec.rb +2 -1
  301. data/spec/thinking_sphinx/middlewares/stale_id_checker_spec.rb +2 -0
  302. data/spec/thinking_sphinx/middlewares/stale_id_filter_spec.rb +2 -0
  303. data/spec/thinking_sphinx/middlewares/valid_options_spec.rb +2 -0
  304. data/spec/thinking_sphinx/panes/attributes_pane_spec.rb +2 -0
  305. data/spec/thinking_sphinx/panes/distance_pane_spec.rb +2 -0
  306. data/spec/thinking_sphinx/panes/excerpts_pane_spec.rb +2 -0
  307. data/spec/thinking_sphinx/panes/weight_pane_spec.rb +3 -1
  308. data/spec/thinking_sphinx/rake_interface_spec.rb +10 -8
  309. data/spec/thinking_sphinx/real_time/attribute_spec.rb +2 -0
  310. data/spec/thinking_sphinx/real_time/callbacks/real_time_callbacks_spec.rb +2 -0
  311. data/spec/thinking_sphinx/real_time/field_spec.rb +2 -0
  312. data/spec/thinking_sphinx/real_time/index_spec.rb +14 -0
  313. data/spec/thinking_sphinx/real_time/interpreter_spec.rb +2 -0
  314. data/spec/thinking_sphinx/real_time/transcribe_instance_spec.rb +35 -0
  315. data/spec/thinking_sphinx/real_time/transcriber_spec.rb +101 -0
  316. data/spec/thinking_sphinx/real_time/translator_spec.rb +17 -0
  317. data/spec/thinking_sphinx/scopes_spec.rb +2 -0
  318. data/spec/thinking_sphinx/search/glaze_spec.rb +2 -0
  319. data/spec/thinking_sphinx/search/query_spec.rb +2 -0
  320. data/spec/thinking_sphinx/search_spec.rb +2 -0
  321. data/spec/thinking_sphinx/wildcard_spec.rb +2 -0
  322. data/spec/thinking_sphinx_spec.rb +2 -0
  323. data/thinking-sphinx.gemspec +7 -5
  324. metadata +62 -25
  325. data/HISTORY +0 -326
  326. data/bin/literals +0 -9
  327. data/lib/thinking_sphinx/commands/index.rb +0 -11
  328. data/lib/thinking_sphinx/controller.rb +0 -12
  329. data/lib/thinking_sphinx/middlewares/attribute_typer.rb +0 -48
  330. data/lib/thinking_sphinx/middlewares/utf8.rb +0 -27
  331. data/lib/thinking_sphinx/sphinxql.rb +0 -23
  332. data/spec/thinking_sphinx/commands/index_spec.rb +0 -26
  333. data/spec/thinking_sphinx/middlewares/attribute_typer_spec.rb +0 -42
data/Gemfile CHANGED
@@ -1,17 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
4
6
 
5
- gem 'mysql2', '~> 0.3.12b4', :platform => :ruby
6
- gem 'pg', '~> 0.18.4', :platform => :ruby
7
-
8
- gem 'jdbc-mysql', '5.1.35', :platform => :jruby
9
- gem 'activerecord-jdbcmysql-adapter', '~> 1.3.23', :platform => :jruby
10
- gem 'activerecord-jdbcpostgresql-adapter', '~> 1.3.23', :platform => :jruby
7
+ gem 'mysql2', '~> 0.5.0', :platform => :ruby
8
+ gem 'pg', '~> 0.18.4', :platform => :ruby
11
9
 
12
- if RUBY_VERSION.to_f <= 2.1
13
- gem 'rack', '~> 1.0'
14
- gem 'nokogiri', '1.6.8'
10
+ if RUBY_PLATFORM == 'java'
11
+ gem 'jdbc-mysql', '5.1.35', :platform => :jruby
12
+ gem 'activerecord-jdbcmysql-adapter', '>= 1.3.23', :platform => :jruby
13
+ gem 'activerecord-jdbcpostgresql-adapter', '>= 1.3.23', :platform => :jruby
14
+ gem 'activerecord', '>= 3.2.22'
15
15
  end
16
-
17
- gem 'activerecord', '>= 3.2.22' if RUBY_PLATFORM == 'java'
@@ -1,50 +1,44 @@
1
1
  h1. Thinking Sphinx
2
2
 
3
- Thinking Sphinx is a library for connecting ActiveRecord to the Sphinx full-text search tool, and integrates closely with Rails (but also works with other Ruby web frameworks). The current release is v3.4.2.
3
+ Thinking Sphinx is a library for connecting ActiveRecord to the Sphinx full-text search tool, and integrates closely with Rails (but also works with other Ruby web frameworks). The current release is v4.0.0.
4
4
 
5
5
  h2. Upgrading
6
6
 
7
- Please refer to the release notes for any changes you need to make when upgrading:
7
+ Please refer to "the changelog":https://github.com/pat/thinking-sphinx/blob/develop/CHANGELOG.markdown and "release notes":https://github.com/pat/thinking-sphinx/releases for any changes you need to make when upgrading. The release notes in particular are quite good at covering breaking changes and more details for new features.
8
8
 
9
- * "v3.4.2":https://github.com/pat/thinking-sphinx/releases/tag/v3.4.2
10
- * "v3.4.1":https://github.com/pat/thinking-sphinx/releases/tag/v3.4.1
11
- * "v3.4.0":https://github.com/pat/thinking-sphinx/releases/tag/v3.4.0
12
- * "v3.3.0":https://github.com/pat/thinking-sphinx/releases/tag/v3.3.0
13
- * "v3.2.0":https://github.com/pat/thinking-sphinx/releases/tag/v3.2.0
14
- * "v3.1.4":https://github.com/pat/thinking-sphinx/releases/tag/v3.1.4
15
- * "v3.1.3":https://github.com/pat/thinking-sphinx/releases/tag/v3.1.3
16
- * "v3.1.2":https://github.com/pat/thinking-sphinx/releases/tag/v3.1.2
17
- * "v3.1.1":https://github.com/pat/thinking-sphinx/releases/tag/v3.1.1
18
- * "v3.1.0":https://github.com/pat/thinking-sphinx/releases/tag/v3.1.0
19
- * "v3.0.6":https://github.com/pat/thinking-sphinx/releases/tag/v3.0.6
20
-
21
- If you're upgrading from pre-v3, then the documentation has "pretty extensive notes":http://pat.github.io/thinking-sphinx/upgrading.html on what's changed.
9
+ The documentation also has more details on what's involved for upgrading from "v3 to v4":https://freelancing-gods.com/thinking-sphinx/v4/upgrading.html, and "v1/v2 to v3":https://freelancing-gods.com/thinking-sphinx/v3/upgrading.html.
22
10
 
23
11
  h2. Installation
24
12
 
25
13
  It's a gem, so install it like you would any other gem. You will also need to specify the mysql2 gem if you're using MRI, or jdbc-mysql if you're using JRuby:
26
14
 
27
- <pre><code>gem 'mysql2', '~> 0.3', :platform => :ruby
28
- gem 'jdbc-mysql', '= 5.1.35', :platform => :jruby
29
- gem 'thinking-sphinx', '~> 3.4.2'</code></pre>
15
+ <pre><code>gem 'mysql2', '~> 0.3', :platform => :ruby
16
+ gem 'jdbc-mysql', '~> 5.1.35', :platform => :jruby
17
+ gem 'thinking-sphinx', '~> 4.0'</code></pre>
30
18
 
31
- The MySQL gems mentioned are required for connecting to Sphinx, so please include it even when you're using PostgreSQL for your database. If you're using JRuby, there is "currently an issue with Sphinx and jdbc-mysql 5.1.36 or newer":http://sphinxsearch.com/forum/view.html?id=13939, so you'll need to stick to nothing more recent than 5.1.35.
19
+ The MySQL gems mentioned are required for connecting to Sphinx, so please include it even when you're using PostgreSQL for your database. If you're using JRuby with a version of Sphinx prior to 2.2.11, there is "currently an issue with Sphinx and jdbc-mysql 5.1.36 or newer":http://sphinxsearch.com/forum/view.html?id=13939, so you'll need to stick to nothing more recent than 5.1.35, or upgrade Sphinx.
32
20
 
33
- You'll also need to install Sphinx - this is covered in "the extended documentation":http://pat.github.io/thinking-sphinx/installing_sphinx.html.
21
+ You'll also need to install Sphinx - this is covered in "the extended documentation":https://freelancing-gods.com/thinking-sphinx/installing_sphinx.html.
34
22
 
35
23
  h2. Usage
36
24
 
37
- Begin by reading the "quick-start guide":http://pat.github.io/thinking-sphinx/quickstart.html, and beyond that, "the documentation":http://pat.github.io/thinking-sphinx/ should serve you pretty well.
25
+ Begin by reading the "quick-start guide":https://freelancing-gods.com/thinking-sphinx/quickstart.html, and beyond that, "the documentation":https://freelancing-gods.com/thinking-sphinx/ should serve you pretty well.
38
26
 
39
- h3. Extending with Middleware, Glazes and Panes
27
+ h2. Requirements
40
28
 
41
- These are covered in "a blog post":http://freelancing-gods.com/posts/rewriting_thinking_sphinx_middleware_glazes_and_panes.
29
+ The current release of Thinking Sphinx works with the following versions of its dependencies:
42
30
 
43
- h2. Requirements
31
+ |_. Library |_. Minimum |_. Tested Against |
32
+ | Ruby | v2.2 | v2.2.9, v2.3.6, v2.4.3, v2.5.0, JRuby 9.1.14 |
33
+ | Sphinx | v2.1.2 | v2.1.9, v2.2.11, v3.0.2 |
34
+ | Manticore | v2.6.3 | v2.6.3 |
35
+ | ActiveRecord | v3.2 | v3.2, v4.0, v4.1, v4.2, v5.0, v5.1, v5.2 |
44
36
 
45
- h3. Sphinx
37
+ It _might_ work with older versions of Ruby, but it's highly recommended to update to a supported release.
46
38
 
47
- Thinking Sphinx v3 is currently built for Sphinx 2.0.5 or newer, and releases since v3.1.0 expect Sphinx 2.1.2 or newer by default.
39
+ h3. Sphinx or Manticore
40
+
41
+ Thinking Sphinx v3 is currently built for Sphinx 2.1.2 or newer, or Manticore v2.6+.
48
42
 
49
43
  h3. Rails and ActiveRecord
50
44
 
@@ -56,9 +50,7 @@ If you want ActiveRecord 3.1 support, then refer to the 3.0.x releases of Thinki
56
50
 
57
51
  h3. Ruby
58
52
 
59
- You'll need either the standard Ruby (v1.9.3 or newer) or JRuby (1.7.9 or newer). I'm open to patches to improve Rubinius support (if required - it may work with it right now).
60
-
61
- JRuby is only supported as of Thinking Sphinx v3.1.0, and requires Sphinx 2.1.2 or newer.
53
+ You'll need either the standard Ruby (v2.2 or newer) or JRuby (9.1 or newer).
62
54
 
63
55
  h3. Database Versions
64
56
 
@@ -66,7 +58,7 @@ MySQL 5.x and Postgres 8.4 or better are supported.
66
58
 
67
59
  h2. Contributing
68
60
 
69
- Please note that this project now has a "Contributor Code of Conduct":http://contributor-covenant.org/version/1/0/0/. By participating in this project you agree to abide by its terms.
61
+ Please note that this project has a "Contributor Code of Conduct":http://contributor-covenant.org/version/1/0/0/. By participating in this project you agree to abide by its terms.
70
62
 
71
63
  To contribute, clone this repository and have a good look through the specs - you'll notice the distinction between acceptance tests that actually use Sphinx and go through the full stack, and unit tests (everything else) which use liberal test doubles to ensure they're only testing the behaviour of the class in question. I've found this leads to far better code design.
72
64
 
@@ -87,4 +79,4 @@ You can then run the unit tests with @rake spec:unit@, the acceptance tests with
87
79
 
88
80
  h2. Licence
89
81
 
90
- Copyright (c) 2007-2017, Thinking Sphinx is developed and maintained by Pat Allan, and is released under the open MIT Licence. Many thanks to "all who have contributed patches":https://github.com/pat/thinking-sphinx/contributors.
82
+ Copyright (c) 2007-2018, Thinking Sphinx is developed and maintained by Pat Allan, and is released under the open MIT Licence. Many thanks to "all who have contributed patches":https://github.com/pat/thinking-sphinx/contributors.
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler'
2
4
  require 'appraisal'
3
5
 
@@ -1,4 +1,5 @@
1
- #!/usr/bin/env ruby
1
+ #! /usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require "bundler/setup"
4
5
  require "thinking_sphinx"
@@ -1,14 +1,28 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
3
  version=$1
4
- name="sphinx-$version"
5
- url="http://sphinxsearch.com/files/$name-release.tar.gz"
4
+ engine=$2
5
+ name="$engine-$version"
6
6
  bucket="thinking-sphinx"
7
7
  directory="ext/sphinx"
8
8
  prefix="`pwd`/$directory"
9
9
  file="ext/$name.tar.gz"
10
10
 
11
+ if [ "$engine" == "sphinx" ]; then
12
+ url="http://sphinxsearch.com/files/$name-release.tar.gz"
13
+ else
14
+ url="https://github.com/manticoresoftware/manticore.git"
15
+ fi
16
+
11
17
  download_and_compile_source () {
18
+ if [ "$engine" == "sphinx" ]; then
19
+ download_and_compile_sphinx
20
+ else
21
+ download_and_compile_manticore
22
+ fi
23
+ }
24
+
25
+ download_and_compile_sphinx () {
12
26
  curl -O $url
13
27
  tar -zxf $name-release.tar.gz
14
28
  cd $name-release
@@ -19,6 +33,19 @@ download_and_compile_source () {
19
33
  rm -rf $name-release.tar.gz $name-release
20
34
  }
21
35
 
36
+ download_and_compile_manticore () {
37
+ git clone $url $engine
38
+ cd $engine
39
+ git checkout $version
40
+ mkdir build
41
+ cd build
42
+ cmake -D WITH_MYSQL=TRUE -D WITH_PGSQL=TRUE -D DISABLE_TESTING=TRUE -D CMAKE_INSTALL_PREFIX=$prefix ..
43
+ make -j4
44
+ make install
45
+ cd ../..
46
+ rm -rf $engine
47
+ }
48
+
22
49
  load_cache () {
23
50
  mkdir ext
24
51
  curl -o $file http://$bucket.s3.amazonaws.com/bincaches/$name.tar.gz
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'thinking_sphinx'
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'thinking_sphinx'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  if RUBY_PLATFORM == 'java'
2
4
  require 'java'
3
5
  require 'jdbc/mysql'
@@ -40,9 +42,22 @@ module ThinkingSphinx
40
42
 
41
43
  @before_index_hooks = []
42
44
 
43
- module Commands; end
45
+ def self.output
46
+ @output
47
+ end
48
+
49
+ @output = STDOUT
50
+
51
+ def self.rake_interface
52
+ @rake_interface ||= ThinkingSphinx::RakeInterface
53
+ end
54
+
55
+ def self.rake_interface=(interface)
56
+ @rake_interface = interface
57
+ end
58
+
59
+ module Hooks; end
44
60
  module IndexingStrategies; end
45
- module Interfaces; end
46
61
  module Subscribers; end
47
62
  end
48
63
 
@@ -52,15 +67,10 @@ require 'thinking_sphinx/batched_search'
52
67
  require 'thinking_sphinx/callbacks'
53
68
  require 'thinking_sphinx/core'
54
69
  require 'thinking_sphinx/with_output'
55
- require 'thinking_sphinx/commands/base'
56
- require 'thinking_sphinx/commands/configure'
57
- require 'thinking_sphinx/commands/index'
58
- require 'thinking_sphinx/commands/start_attached'
59
- require 'thinking_sphinx/commands/start_detached'
60
- require 'thinking_sphinx/commands/stop'
70
+ require 'thinking_sphinx/commander'
71
+ require 'thinking_sphinx/commands'
61
72
  require 'thinking_sphinx/configuration'
62
73
  require 'thinking_sphinx/connection'
63
- require 'thinking_sphinx/controller'
64
74
  require 'thinking_sphinx/deletion'
65
75
  require 'thinking_sphinx/errors'
66
76
  require 'thinking_sphinx/excerpter'
@@ -69,13 +79,12 @@ require 'thinking_sphinx/facet_search'
69
79
  require 'thinking_sphinx/float_formatter'
70
80
  require 'thinking_sphinx/frameworks'
71
81
  require 'thinking_sphinx/guard'
82
+ require 'thinking_sphinx/hooks/guard_presence'
72
83
  require 'thinking_sphinx/index'
73
84
  require 'thinking_sphinx/indexing_strategies/all_at_once'
74
85
  require 'thinking_sphinx/indexing_strategies/one_at_a_time'
75
86
  require 'thinking_sphinx/index_set'
76
- require 'thinking_sphinx/interfaces/daemon'
77
- require 'thinking_sphinx/interfaces/real_time'
78
- require 'thinking_sphinx/interfaces/sql'
87
+ require 'thinking_sphinx/interfaces'
79
88
  require 'thinking_sphinx/masks'
80
89
  require 'thinking_sphinx/middlewares'
81
90
  require 'thinking_sphinx/panes'
@@ -83,7 +92,7 @@ require 'thinking_sphinx/query'
83
92
  require 'thinking_sphinx/rake_interface'
84
93
  require 'thinking_sphinx/scopes'
85
94
  require 'thinking_sphinx/search'
86
- require 'thinking_sphinx/sphinxql'
95
+ require 'thinking_sphinx/settings'
87
96
  require 'thinking_sphinx/subscribers/populator_subscriber'
88
97
  require 'thinking_sphinx/test'
89
98
  require 'thinking_sphinx/utf8'
@@ -96,3 +105,5 @@ require 'thinking_sphinx/logger'
96
105
  require 'thinking_sphinx/real_time'
97
106
 
98
107
  require 'thinking_sphinx/railtie' if defined?(Rails::Railtie)
108
+
109
+ ThinkingSphinx.before_index_hooks << ThinkingSphinx::Hooks::GuardPresence
@@ -1,8 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_record'
2
4
  require 'joiner'
3
5
 
4
6
  module ThinkingSphinx::ActiveRecord
5
7
  module Callbacks; end
8
+ module Depolymorph; end
6
9
  end
7
10
 
8
11
  require 'thinking_sphinx/active_record/property'
@@ -14,7 +17,6 @@ require 'thinking_sphinx/active_record/column'
14
17
  require 'thinking_sphinx/active_record/column_sql_presenter'
15
18
  require 'thinking_sphinx/active_record/database_adapters'
16
19
  require 'thinking_sphinx/active_record/field'
17
- require 'thinking_sphinx/active_record/filter_reflection'
18
20
  require 'thinking_sphinx/active_record/index'
19
21
  require 'thinking_sphinx/active_record/interpreter'
20
22
  require 'thinking_sphinx/active_record/join_association'
@@ -30,3 +32,10 @@ require 'thinking_sphinx/active_record/sql_source'
30
32
  require 'thinking_sphinx/active_record/callbacks/delete_callbacks'
31
33
  require 'thinking_sphinx/active_record/callbacks/delta_callbacks'
32
34
  require 'thinking_sphinx/active_record/callbacks/update_callbacks'
35
+
36
+ require 'thinking_sphinx/active_record/depolymorph/base_reflection'
37
+ require 'thinking_sphinx/active_record/depolymorph/association_reflection'
38
+ require 'thinking_sphinx/active_record/depolymorph/conditions_reflection'
39
+ require 'thinking_sphinx/active_record/depolymorph/overridden_reflection'
40
+ require 'thinking_sphinx/active_record/depolymorph/scoped_reflection'
41
+ require 'thinking_sphinx/active_record/filter_reflection'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::Association
2
4
  def initialize(column)
3
5
  @column = column
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ThinkingSphinx::ActiveRecord::AssociationProxy
2
4
  extend ActiveSupport::Concern
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::AssociationProxy::AttributeFinder
2
4
  def initialize(association)
3
5
  @association = association
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::AssociationProxy::AttributeMatcher
2
4
  def initialize(attribute, foreign_key)
3
5
  @attribute, @foreign_key = attribute, foreign_key.to_s
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::Attribute <
2
4
  ThinkingSphinx::ActiveRecord::Property
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::Attribute::SphinxPresenter
2
4
  SPHINX_TYPES = {
3
5
  :integer => :uint,
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::Attribute::Type
2
4
  UPDATEABLE_TYPES = [:integer, :timestamp, :boolean, :float]
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::Attribute::Values
2
4
  def initialize(attribute)
3
5
  @attribute = attribute
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ThinkingSphinx::ActiveRecord::Base
2
4
  extend ActiveSupport::Concern
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::Callbacks::DeleteCallbacks <
2
4
  ThinkingSphinx::Callbacks
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::Callbacks::DeltaCallbacks <
2
4
  ThinkingSphinx::Callbacks
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::Callbacks::UpdateCallbacks <
2
4
  ThinkingSphinx::Callbacks
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::Column
2
4
  def initialize(*stack)
3
5
  @stack = stack
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::ColumnSQLPresenter
2
4
  def initialize(model, column, adapter, associations)
3
5
  @model, @column, @adapter, @associations = model, column, adapter, associations
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ThinkingSphinx::ActiveRecord::DatabaseAdapters
2
4
  class << self
3
5
  attr_accessor :default
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::DatabaseAdapters::AbstractAdapter
2
4
  def initialize(model)
3
5
  @model = model
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::DatabaseAdapters::MySQLAdapter <
2
4
  ThinkingSphinx::ActiveRecord::DatabaseAdapters::AbstractAdapter
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ThinkingSphinx::ActiveRecord::DatabaseAdapters::PostgreSQLAdapter <
2
4
  ThinkingSphinx::ActiveRecord::DatabaseAdapters::AbstractAdapter
3
5
 
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This custom association approach is only available in Rails 4.1-5.1. This
4
+ # behaviour is superseded by OverriddenReflection for Rails 5.2, and was
5
+ # preceded by ScopedReflection for Rails 4.0.
6
+ class ThinkingSphinx::ActiveRecord::Depolymorph::AssociationReflection <
7
+ ThinkingSphinx::ActiveRecord::Depolymorph::BaseReflection
8
+
9
+ # Since Rails 4.2, the macro argument has been removed. The underlying
10
+ # behaviour remains the same, though.
11
+ def call
12
+ if explicit_macro?
13
+ klass.new name, nil, options, reflection.active_record
14
+ else
15
+ klass.new reflection.macro, name, nil, options, reflection.active_record
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def explicit_macro?
22
+ ActiveRecord::Reflection::MacroReflection.instance_method(:initialize).
23
+ arity == 4
24
+ end
25
+
26
+ def options
27
+ super
28
+
29
+ @options[:sphinx_internal_filtered] = true
30
+ @options
31
+ end
32
+ end