sunspot_rails 2.0.0.pre.120924 → 2.0.0.pre.120925

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 (293) hide show
  1. data/.gitignore +6 -10
  2. data/{sunspot_rails/.rspec → .rspec} +0 -0
  3. data/{sunspot_rails/History.txt → History.txt} +0 -0
  4. data/{sunspot/LICENSE → LICENSE} +0 -0
  5. data/{sunspot_rails/MIT-LICENSE → MIT-LICENSE} +0 -0
  6. data/{sunspot_rails/README.rdoc → README.rdoc} +0 -0
  7. data/Rakefile +12 -32
  8. data/{sunspot_rails/TODO → TODO} +0 -0
  9. data/{sunspot_rails/dev_tasks → dev_tasks}/rdoc.rake +0 -0
  10. data/{sunspot_rails/dev_tasks → dev_tasks}/release.rake +0 -0
  11. data/{sunspot_rails/dev_tasks → dev_tasks}/spec.rake +0 -0
  12. data/{sunspot/tasks → dev_tasks}/todo.rake +0 -0
  13. data/{sunspot_rails/gemfiles → gemfiles}/rails-2.3.14 +0 -0
  14. data/{sunspot_rails/gemfiles → gemfiles}/rails-3.0.15 +0 -0
  15. data/{sunspot_rails/gemfiles → gemfiles}/rails-3.1.6 +0 -0
  16. data/{sunspot_rails/gemfiles → gemfiles}/rails-3.2.6 +0 -0
  17. data/{sunspot_rails/generators → generators}/sunspot/sunspot_generator.rb +0 -0
  18. data/{sunspot_rails/generators → generators}/sunspot/templates/sunspot.yml +0 -0
  19. data/{sunspot_rails/install.rb → install.rb} +0 -0
  20. data/{sunspot_rails/lib → lib}/generators/sunspot_rails.rb +0 -0
  21. data/{sunspot_rails/lib → lib}/generators/sunspot_rails/install/install_generator.rb +0 -0
  22. data/{sunspot_rails/lib → lib}/generators/sunspot_rails/install/templates/config/sunspot.yml +0 -0
  23. data/{sunspot_rails/lib → lib}/sunspot/rails.rb +0 -0
  24. data/{sunspot_rails/lib → lib}/sunspot/rails/adapters.rb +0 -0
  25. data/{sunspot_rails/lib → lib}/sunspot/rails/configuration.rb +0 -0
  26. data/{sunspot_rails/lib → lib}/sunspot/rails/init.rb +0 -0
  27. data/{sunspot_rails/lib → lib}/sunspot/rails/log_subscriber.rb +0 -0
  28. data/{sunspot_rails/lib → lib}/sunspot/rails/railtie.rb +0 -0
  29. data/{sunspot_rails/lib → lib}/sunspot/rails/railties/controller_runtime.rb +0 -0
  30. data/{sunspot_rails/lib → lib}/sunspot/rails/request_lifecycle.rb +0 -0
  31. data/{sunspot_rails/lib → lib}/sunspot/rails/searchable.rb +0 -0
  32. data/{sunspot_rails/lib → lib}/sunspot/rails/server.rb +0 -0
  33. data/{sunspot_rails/lib → lib}/sunspot/rails/solr_instrumentation.rb +0 -0
  34. data/{sunspot_rails/lib → lib}/sunspot/rails/solr_logging.rb +0 -0
  35. data/{sunspot_rails/lib → lib}/sunspot/rails/spec_helper.rb +0 -0
  36. data/{sunspot_rails/lib → lib}/sunspot/rails/stub_session_proxy.rb +0 -0
  37. data/{sunspot_rails/lib → lib}/sunspot/rails/tasks.rb +0 -0
  38. data/{sunspot_rails/lib → lib}/sunspot_rails.rb +0 -0
  39. data/{sunspot_rails/spec → spec}/configuration_spec.rb +0 -0
  40. data/{sunspot_rails/spec → spec}/model_lifecycle_spec.rb +0 -0
  41. data/{sunspot_rails/spec → spec}/model_spec.rb +0 -0
  42. data/{sunspot_rails/spec → spec}/rails_template/app/controllers/application_controller.rb +0 -0
  43. data/{sunspot_rails/spec → spec}/rails_template/app/controllers/posts_controller.rb +0 -0
  44. data/{sunspot_rails/spec → spec}/rails_template/app/models/author.rb +0 -0
  45. data/{sunspot_rails/spec → spec}/rails_template/app/models/blog.rb +0 -0
  46. data/{sunspot_rails/spec → spec}/rails_template/app/models/location.rb +0 -0
  47. data/{sunspot_rails/spec → spec}/rails_template/app/models/photo_post.rb +0 -0
  48. data/{sunspot_rails/spec → spec}/rails_template/app/models/post.rb +0 -0
  49. data/{sunspot_rails/spec → spec}/rails_template/app/models/post_with_auto.rb +0 -0
  50. data/{sunspot_rails/spec → spec}/rails_template/app/models/post_with_default_scope.rb +0 -0
  51. data/{sunspot_rails/spec → spec}/rails_template/config/boot.rb +0 -0
  52. data/{sunspot_rails/spec → spec}/rails_template/config/preinitializer.rb +0 -0
  53. data/{sunspot_rails/spec → spec}/rails_template/config/routes.rb +0 -0
  54. data/{sunspot_rails/spec → spec}/rails_template/config/sunspot.yml +0 -0
  55. data/{sunspot_rails/spec → spec}/rails_template/db/schema.rb +0 -0
  56. data/{sunspot_rails/spec → spec}/request_lifecycle_spec.rb +0 -0
  57. data/{sunspot_rails/spec → spec}/schema.rb +0 -0
  58. data/{sunspot_rails/spec → spec}/searchable_spec.rb +0 -0
  59. data/{sunspot_rails/spec → spec}/server_spec.rb +0 -0
  60. data/{sunspot_rails/spec → spec}/session_spec.rb +0 -0
  61. data/{sunspot_rails/spec → spec}/shared_examples/indexed_after_save.rb +0 -0
  62. data/{sunspot_rails/spec → spec}/shared_examples/not_indexed_after_save.rb +0 -0
  63. data/{sunspot_rails/spec → spec}/spec_helper.rb +0 -0
  64. data/{sunspot_rails/spec → spec}/stub_session_proxy_spec.rb +0 -0
  65. data/{sunspot_rails/sunspot_rails.gemspec → sunspot_rails.gemspec} +0 -0
  66. metadata +102 -305
  67. data/.travis.yml +0 -35
  68. data/README.md +0 -863
  69. data/ci/travis.sh +0 -67
  70. data/sunspot/.gitignore +0 -13
  71. data/sunspot/Gemfile +0 -5
  72. data/sunspot/History.txt +0 -258
  73. data/sunspot/Rakefile +0 -13
  74. data/sunspot/TODO +0 -13
  75. data/sunspot/lib/light_config.rb +0 -40
  76. data/sunspot/lib/sunspot.rb +0 -579
  77. data/sunspot/lib/sunspot/adapters.rb +0 -349
  78. data/sunspot/lib/sunspot/batcher.rb +0 -62
  79. data/sunspot/lib/sunspot/class_set.rb +0 -23
  80. data/sunspot/lib/sunspot/composite_setup.rb +0 -202
  81. data/sunspot/lib/sunspot/configuration.rb +0 -53
  82. data/sunspot/lib/sunspot/data_extractor.rb +0 -50
  83. data/sunspot/lib/sunspot/dsl.rb +0 -5
  84. data/sunspot/lib/sunspot/dsl/adjustable.rb +0 -47
  85. data/sunspot/lib/sunspot/dsl/field_group.rb +0 -57
  86. data/sunspot/lib/sunspot/dsl/field_query.rb +0 -345
  87. data/sunspot/lib/sunspot/dsl/fields.rb +0 -103
  88. data/sunspot/lib/sunspot/dsl/fulltext.rb +0 -243
  89. data/sunspot/lib/sunspot/dsl/function.rb +0 -27
  90. data/sunspot/lib/sunspot/dsl/functional.rb +0 -44
  91. data/sunspot/lib/sunspot/dsl/more_like_this_query.rb +0 -56
  92. data/sunspot/lib/sunspot/dsl/paginatable.rb +0 -32
  93. data/sunspot/lib/sunspot/dsl/query_facet.rb +0 -36
  94. data/sunspot/lib/sunspot/dsl/restriction.rb +0 -25
  95. data/sunspot/lib/sunspot/dsl/restriction_with_near.rb +0 -160
  96. data/sunspot/lib/sunspot/dsl/scope.rb +0 -214
  97. data/sunspot/lib/sunspot/dsl/search.rb +0 -30
  98. data/sunspot/lib/sunspot/dsl/standard_query.rb +0 -122
  99. data/sunspot/lib/sunspot/field.rb +0 -193
  100. data/sunspot/lib/sunspot/field_factory.rb +0 -129
  101. data/sunspot/lib/sunspot/indexer.rb +0 -136
  102. data/sunspot/lib/sunspot/query.rb +0 -11
  103. data/sunspot/lib/sunspot/query/abstract_field_facet.rb +0 -55
  104. data/sunspot/lib/sunspot/query/bbox.rb +0 -15
  105. data/sunspot/lib/sunspot/query/boost_query.rb +0 -24
  106. data/sunspot/lib/sunspot/query/common_query.rb +0 -96
  107. data/sunspot/lib/sunspot/query/composite_fulltext.rb +0 -36
  108. data/sunspot/lib/sunspot/query/connective.rb +0 -206
  109. data/sunspot/lib/sunspot/query/date_field_facet.rb +0 -14
  110. data/sunspot/lib/sunspot/query/dismax.rb +0 -132
  111. data/sunspot/lib/sunspot/query/field_facet.rb +0 -41
  112. data/sunspot/lib/sunspot/query/field_group.rb +0 -37
  113. data/sunspot/lib/sunspot/query/filter.rb +0 -38
  114. data/sunspot/lib/sunspot/query/function_query.rb +0 -52
  115. data/sunspot/lib/sunspot/query/geo.rb +0 -53
  116. data/sunspot/lib/sunspot/query/geofilt.rb +0 -16
  117. data/sunspot/lib/sunspot/query/highlighting.rb +0 -62
  118. data/sunspot/lib/sunspot/query/more_like_this.rb +0 -61
  119. data/sunspot/lib/sunspot/query/more_like_this_query.rb +0 -12
  120. data/sunspot/lib/sunspot/query/pagination.rb +0 -42
  121. data/sunspot/lib/sunspot/query/query_facet.rb +0 -53
  122. data/sunspot/lib/sunspot/query/range_facet.rb +0 -15
  123. data/sunspot/lib/sunspot/query/restriction.rb +0 -308
  124. data/sunspot/lib/sunspot/query/scope.rb +0 -9
  125. data/sunspot/lib/sunspot/query/sort.rb +0 -109
  126. data/sunspot/lib/sunspot/query/sort_composite.rb +0 -34
  127. data/sunspot/lib/sunspot/query/standard_query.rb +0 -16
  128. data/sunspot/lib/sunspot/query/text_field_boost.rb +0 -17
  129. data/sunspot/lib/sunspot/schema.rb +0 -151
  130. data/sunspot/lib/sunspot/search.rb +0 -9
  131. data/sunspot/lib/sunspot/search/abstract_search.rb +0 -286
  132. data/sunspot/lib/sunspot/search/date_facet.rb +0 -35
  133. data/sunspot/lib/sunspot/search/facet_row.rb +0 -27
  134. data/sunspot/lib/sunspot/search/field_facet.rb +0 -88
  135. data/sunspot/lib/sunspot/search/field_group.rb +0 -70
  136. data/sunspot/lib/sunspot/search/group.rb +0 -54
  137. data/sunspot/lib/sunspot/search/highlight.rb +0 -38
  138. data/sunspot/lib/sunspot/search/hit.rb +0 -150
  139. data/sunspot/lib/sunspot/search/hit_enumerable.rb +0 -68
  140. data/sunspot/lib/sunspot/search/more_like_this_search.rb +0 -31
  141. data/sunspot/lib/sunspot/search/paginated_collection.rb +0 -57
  142. data/sunspot/lib/sunspot/search/query_facet.rb +0 -67
  143. data/sunspot/lib/sunspot/search/range_facet.rb +0 -37
  144. data/sunspot/lib/sunspot/search/standard_search.rb +0 -21
  145. data/sunspot/lib/sunspot/session.rb +0 -262
  146. data/sunspot/lib/sunspot/session_proxy.rb +0 -95
  147. data/sunspot/lib/sunspot/session_proxy/abstract_session_proxy.rb +0 -29
  148. data/sunspot/lib/sunspot/session_proxy/class_sharding_session_proxy.rb +0 -66
  149. data/sunspot/lib/sunspot/session_proxy/id_sharding_session_proxy.rb +0 -89
  150. data/sunspot/lib/sunspot/session_proxy/master_slave_session_proxy.rb +0 -43
  151. data/sunspot/lib/sunspot/session_proxy/retry_5xx_session_proxy.rb +0 -67
  152. data/sunspot/lib/sunspot/session_proxy/sharding_session_proxy.rb +0 -222
  153. data/sunspot/lib/sunspot/session_proxy/silent_fail_session_proxy.rb +0 -42
  154. data/sunspot/lib/sunspot/session_proxy/thread_local_session_proxy.rb +0 -37
  155. data/sunspot/lib/sunspot/setup.rb +0 -350
  156. data/sunspot/lib/sunspot/text_field_setup.rb +0 -29
  157. data/sunspot/lib/sunspot/type.rb +0 -393
  158. data/sunspot/lib/sunspot/util.rb +0 -252
  159. data/sunspot/lib/sunspot/version.rb +0 -3
  160. data/sunspot/script/console +0 -10
  161. data/sunspot/spec/api/adapters_spec.rb +0 -68
  162. data/sunspot/spec/api/batcher_spec.rb +0 -112
  163. data/sunspot/spec/api/binding_spec.rb +0 -50
  164. data/sunspot/spec/api/class_set_spec.rb +0 -24
  165. data/sunspot/spec/api/hit_enumerable_spec.rb +0 -47
  166. data/sunspot/spec/api/indexer/attributes_spec.rb +0 -149
  167. data/sunspot/spec/api/indexer/batch_spec.rb +0 -72
  168. data/sunspot/spec/api/indexer/dynamic_fields_spec.rb +0 -42
  169. data/sunspot/spec/api/indexer/fixed_fields_spec.rb +0 -57
  170. data/sunspot/spec/api/indexer/fulltext_spec.rb +0 -43
  171. data/sunspot/spec/api/indexer/removal_spec.rb +0 -53
  172. data/sunspot/spec/api/indexer/spec_helper.rb +0 -1
  173. data/sunspot/spec/api/indexer_spec.rb +0 -14
  174. data/sunspot/spec/api/query/advanced_manipulation_examples.rb +0 -35
  175. data/sunspot/spec/api/query/connectives_examples.rb +0 -201
  176. data/sunspot/spec/api/query/dsl_spec.rb +0 -18
  177. data/sunspot/spec/api/query/dynamic_fields_examples.rb +0 -165
  178. data/sunspot/spec/api/query/faceting_examples.rb +0 -497
  179. data/sunspot/spec/api/query/fulltext_examples.rb +0 -313
  180. data/sunspot/spec/api/query/function_spec.rb +0 -79
  181. data/sunspot/spec/api/query/geo_examples.rb +0 -68
  182. data/sunspot/spec/api/query/group_spec.rb +0 -32
  183. data/sunspot/spec/api/query/highlighting_examples.rb +0 -245
  184. data/sunspot/spec/api/query/more_like_this_spec.rb +0 -140
  185. data/sunspot/spec/api/query/ordering_pagination_examples.rb +0 -116
  186. data/sunspot/spec/api/query/scope_examples.rb +0 -275
  187. data/sunspot/spec/api/query/spatial_examples.rb +0 -27
  188. data/sunspot/spec/api/query/spec_helper.rb +0 -1
  189. data/sunspot/spec/api/query/standard_spec.rb +0 -29
  190. data/sunspot/spec/api/query/text_field_scoping_examples.rb +0 -30
  191. data/sunspot/spec/api/query/types_spec.rb +0 -20
  192. data/sunspot/spec/api/search/dynamic_fields_spec.rb +0 -33
  193. data/sunspot/spec/api/search/faceting_spec.rb +0 -360
  194. data/sunspot/spec/api/search/highlighting_spec.rb +0 -69
  195. data/sunspot/spec/api/search/hits_spec.rb +0 -147
  196. data/sunspot/spec/api/search/paginated_collection_spec.rb +0 -36
  197. data/sunspot/spec/api/search/results_spec.rb +0 -72
  198. data/sunspot/spec/api/search/search_spec.rb +0 -23
  199. data/sunspot/spec/api/search/spec_helper.rb +0 -1
  200. data/sunspot/spec/api/session_proxy/class_sharding_session_proxy_spec.rb +0 -85
  201. data/sunspot/spec/api/session_proxy/id_sharding_session_proxy_spec.rb +0 -30
  202. data/sunspot/spec/api/session_proxy/master_slave_session_proxy_spec.rb +0 -41
  203. data/sunspot/spec/api/session_proxy/retry_5xx_session_proxy_spec.rb +0 -78
  204. data/sunspot/spec/api/session_proxy/sharding_session_proxy_spec.rb +0 -77
  205. data/sunspot/spec/api/session_proxy/silent_fail_session_proxy_spec.rb +0 -24
  206. data/sunspot/spec/api/session_proxy/spec_helper.rb +0 -9
  207. data/sunspot/spec/api/session_proxy/thread_local_session_proxy_spec.rb +0 -39
  208. data/sunspot/spec/api/session_spec.rb +0 -232
  209. data/sunspot/spec/api/spec_helper.rb +0 -3
  210. data/sunspot/spec/api/sunspot_spec.rb +0 -29
  211. data/sunspot/spec/ext.rb +0 -11
  212. data/sunspot/spec/helpers/indexer_helper.rb +0 -17
  213. data/sunspot/spec/helpers/integration_helper.rb +0 -8
  214. data/sunspot/spec/helpers/mock_session_helper.rb +0 -13
  215. data/sunspot/spec/helpers/query_helper.rb +0 -26
  216. data/sunspot/spec/helpers/search_helper.rb +0 -68
  217. data/sunspot/spec/integration/dynamic_fields_spec.rb +0 -57
  218. data/sunspot/spec/integration/faceting_spec.rb +0 -330
  219. data/sunspot/spec/integration/field_grouping_spec.rb +0 -100
  220. data/sunspot/spec/integration/geospatial_spec.rb +0 -96
  221. data/sunspot/spec/integration/highlighting_spec.rb +0 -44
  222. data/sunspot/spec/integration/indexing_spec.rb +0 -55
  223. data/sunspot/spec/integration/keyword_search_spec.rb +0 -317
  224. data/sunspot/spec/integration/local_search_spec.rb +0 -64
  225. data/sunspot/spec/integration/more_like_this_spec.rb +0 -43
  226. data/sunspot/spec/integration/scoped_search_spec.rb +0 -386
  227. data/sunspot/spec/integration/stored_fields_spec.rb +0 -12
  228. data/sunspot/spec/integration/test_pagination.rb +0 -43
  229. data/sunspot/spec/integration/unicode_spec.rb +0 -15
  230. data/sunspot/spec/mocks/adapters.rb +0 -33
  231. data/sunspot/spec/mocks/blog.rb +0 -3
  232. data/sunspot/spec/mocks/comment.rb +0 -21
  233. data/sunspot/spec/mocks/connection.rb +0 -126
  234. data/sunspot/spec/mocks/mock_adapter.rb +0 -30
  235. data/sunspot/spec/mocks/mock_class_sharding_session_proxy.rb +0 -24
  236. data/sunspot/spec/mocks/mock_record.rb +0 -52
  237. data/sunspot/spec/mocks/mock_sharding_session_proxy.rb +0 -15
  238. data/sunspot/spec/mocks/photo.rb +0 -11
  239. data/sunspot/spec/mocks/post.rb +0 -86
  240. data/sunspot/spec/mocks/super_class.rb +0 -2
  241. data/sunspot/spec/mocks/user.rb +0 -13
  242. data/sunspot/spec/spec_helper.rb +0 -40
  243. data/sunspot/sunspot.gemspec +0 -37
  244. data/sunspot/tasks/rdoc.rake +0 -27
  245. data/sunspot/tasks/schema.rake +0 -19
  246. data/sunspot_rails/.gitignore +0 -7
  247. data/sunspot_rails/LICENSE +0 -18
  248. data/sunspot_rails/Rakefile +0 -17
  249. data/sunspot_rails/dev_tasks/todo.rake +0 -4
  250. data/sunspot_solr/Gemfile +0 -3
  251. data/sunspot_solr/README.rdoc +0 -24
  252. data/sunspot_solr/bin/sunspot-installer +0 -20
  253. data/sunspot_solr/bin/sunspot-solr +0 -80
  254. data/sunspot_solr/lib/sunspot/solr/installer.rb +0 -25
  255. data/sunspot_solr/lib/sunspot/solr/installer/config_installer.rb +0 -46
  256. data/sunspot_solr/lib/sunspot/solr/installer/task_helper.rb +0 -13
  257. data/sunspot_solr/lib/sunspot/solr/java.rb +0 -10
  258. data/sunspot_solr/lib/sunspot/solr/railtie.rb +0 -15
  259. data/sunspot_solr/lib/sunspot/solr/server.rb +0 -223
  260. data/sunspot_solr/lib/sunspot/solr/tasks.rb +0 -49
  261. data/sunspot_solr/lib/sunspot_solr.rb +0 -5
  262. data/sunspot_solr/solr/README.txt +0 -42
  263. data/sunspot_solr/solr/etc/jetty.xml +0 -219
  264. data/sunspot_solr/solr/etc/webdefault.xml +0 -379
  265. data/sunspot_solr/solr/lib/jetty-6.1.26-patched-JETTY-1340.jar +0 -0
  266. data/sunspot_solr/solr/lib/jetty-util-6.1.26-patched-JETTY-1340.jar +0 -0
  267. data/sunspot_solr/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  268. data/sunspot_solr/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
  269. data/sunspot_solr/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
  270. data/sunspot_solr/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  271. data/sunspot_solr/solr/lib/servlet-api-2.5-20081211.jar +0 -0
  272. data/sunspot_solr/solr/solr/.gitignore +0 -1
  273. data/sunspot_solr/solr/solr/README.txt +0 -54
  274. data/sunspot_solr/solr/solr/conf/admin-extra.html +0 -31
  275. data/sunspot_solr/solr/solr/conf/elevate.xml +0 -36
  276. data/sunspot_solr/solr/solr/conf/mapping-ISOLatin1Accent.txt +0 -246
  277. data/sunspot_solr/solr/solr/conf/protwords.txt +0 -21
  278. data/sunspot_solr/solr/solr/conf/schema.xml +0 -250
  279. data/sunspot_solr/solr/solr/conf/scripts.conf +0 -24
  280. data/sunspot_solr/solr/solr/conf/solrconfig.xml +0 -934
  281. data/sunspot_solr/solr/solr/conf/spellings.txt +0 -2
  282. data/sunspot_solr/solr/solr/conf/stopwords.txt +0 -58
  283. data/sunspot_solr/solr/solr/conf/synonyms.txt +0 -31
  284. data/sunspot_solr/solr/solr/conf/xslt/example.xsl +0 -132
  285. data/sunspot_solr/solr/solr/conf/xslt/example_atom.xsl +0 -67
  286. data/sunspot_solr/solr/solr/conf/xslt/example_rss.xsl +0 -66
  287. data/sunspot_solr/solr/solr/conf/xslt/luke.xsl +0 -337
  288. data/sunspot_solr/solr/start.jar +0 -0
  289. data/sunspot_solr/solr/webapps/solr.war +0 -0
  290. data/sunspot_solr/spec/server_spec.rb +0 -98
  291. data/sunspot_solr/spec/spec_helper.rb +0 -18
  292. data/sunspot_solr/sunspot_solr.gemspec +0 -37
  293. data/tools/gem_tasks.rb +0 -69
@@ -1,72 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'batch indexing', :type => :indexer do
4
- let(:posts) { Array.new(2) { |index| Post.new :title => "Post number #{index}!" } }
5
-
6
- it 'should send all batched adds in a single request' do
7
- session.batch do
8
- for post in posts
9
- session.index(post)
10
- end
11
- end
12
- connection.adds.length.should == 1
13
- end
14
-
15
- it 'should add all batched adds' do
16
- session.batch do
17
- for post in posts
18
- session.index(post)
19
- end
20
- end
21
- add = connection.adds.last
22
- connection.adds.first.map { |add| add.field_by_name(:id).value }.should ==
23
- posts.map { |post| "Post #{post.id}" }
24
- end
25
-
26
- it 'should not index changes to models that happen after index call' do
27
- post = Post.new
28
- session.batch do
29
- session.index(post)
30
- post.title = 'Title'
31
- end
32
- connection.adds.first.first.field_by_name(:title_ss).should be_nil
33
- end
34
-
35
- it 'should batch an add and a delete' do
36
- pending 'batching all operations'
37
- connection.should_not_receive(:add)
38
- connection.should_not_receive(:remove)
39
- session.batch do
40
- session.index(posts[0])
41
- session.remove(posts[1])
42
- end
43
- connection.adds
44
- end
45
-
46
- describe "nesting of batches" do
47
- let(:a_nested_batch) do
48
- session.batch do
49
- session.index posts[0]
50
-
51
- session.batch do
52
- session.index posts[1]
53
- end
54
- end
55
- end
56
-
57
- it "behaves like two sets of batches, does the inner first, then outer" do
58
- session.batch { session.index posts[1] }
59
- session.batch { session.index posts[0] }
60
-
61
- two_sets_of_batches_adds = connection.adds.dup
62
- connection.adds.clear
63
-
64
- a_nested_batch
65
- nested_batches_adds = connection.adds
66
-
67
- nested_batches_adds.first.first.field_by_name(:title_ss).value.should eq(
68
- two_sets_of_batches_adds.first.first.field_by_name(:title_ss).value
69
- )
70
- end
71
- end
72
- end
@@ -1,42 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'indexing dynamic fields' do
4
- it 'indexes string data' do
5
- session.index(post(:custom_string => { :test => 'string' }))
6
- connection.should have_add_with(:"custom_string:test_ss" => 'string')
7
- end
8
-
9
- it 'indexes integer data with virtual accessor' do
10
- session.index(post(:category_ids => [1, 2]))
11
- connection.should have_add_with(:"custom_integer:1_i" => '1', :"custom_integer:2_i" => '1')
12
- end
13
-
14
- it 'indexes float data' do
15
- session.index(post(:custom_fl => { :test => 1.5 }))
16
- connection.should have_add_with(:"custom_float:test_fm" => '1.5')
17
- end
18
-
19
- it 'indexes time data' do
20
- session.index(post(:custom_time => { :test => Time.parse('2009-05-18 18:05:00 -0400') }))
21
- connection.should have_add_with(:"custom_time:test_d" => '2009-05-18T22:05:00Z')
22
- end
23
-
24
- it 'indexes boolean data' do
25
- session.index(post(:custom_boolean => { :test => false }))
26
- connection.should have_add_with(:"custom_boolean:test_b" => 'false')
27
- end
28
-
29
- it 'indexes multiple values for a field' do
30
- session.index(post(:custom_fl => { :test => [1.0, 2.1, 3.2] }))
31
- connection.should have_add_with(:"custom_float:test_fm" => %w(1.0 2.1 3.2))
32
- end
33
-
34
- it 'should throw a NoMethodError if dynamic text field defined' do
35
- lambda do
36
- Sunspot.setup(Post) do
37
- dynamic_text :custom_text
38
- end
39
- end.should raise_error(NoMethodError)
40
- end
41
- end
42
-
@@ -1,57 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'indexing fixed fields', :type => :indexer do
4
- it 'should index id' do
5
- session.index post
6
- connection.should have_add_with(:id => "Post #{post.id}")
7
- end
8
-
9
- it 'should index type' do
10
- session.index post
11
- connection.should have_add_with(:type => ['Post', 'SuperClass', 'MockRecord'])
12
- end
13
-
14
- it 'should index class name' do
15
- session.index post
16
- connection.should have_add_with(:class_name => 'Post')
17
- end
18
-
19
- it 'should index the array of objects supplied' do
20
- posts = Array.new(2) { Post.new }
21
- session.index posts
22
- connection.should have_add_with(
23
- { :id => "Post #{posts.first.id}" },
24
- { :id => "Post #{posts.last.id}" }
25
- )
26
- end
27
-
28
- it 'should index an array containing more than one type of object' do
29
- post1, comment, post2 = objects = [Post.new, Namespaced::Comment.new, Post.new]
30
- session.index objects
31
- connection.should have_add_with(
32
- { :id => "Post #{post1.id}", :type => ['Post', 'SuperClass', 'MockRecord'] },
33
- { :id => "Namespaced::Comment #{comment.id}", :type => ['Namespaced::Comment', 'MockRecord'] },
34
- { :id => "Post #{post2.id}", :type => ['Post', 'SuperClass', 'MockRecord'] }
35
- )
36
- end
37
-
38
- it 'commits immediately after index! called' do
39
- connection.should_receive(:add).ordered
40
- connection.should_receive(:commit).ordered
41
- session.index!(post)
42
- end
43
-
44
- it 'raises an ArgumentError if an attempt is made to index an object that has no configuration' do
45
- lambda { session.index(Blog.new) }.should raise_error(Sunspot::NoSetupError)
46
- end
47
-
48
- it 'raises a NoAdapterError if class without adapter is indexed' do
49
- lambda { session.index(User.new) }.should raise_error(Sunspot::NoAdapterError)
50
- end
51
-
52
- it 'raises an ArgumentError if a non-word character is included in the field name' do
53
- lambda do
54
- Sunspot.setup(Post) { string :"bad name" }
55
- end.should raise_error(ArgumentError)
56
- end
57
- end
@@ -1,43 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'indexing fulltext fields' do
4
- it 'indexes text field' do
5
- session.index(post(:title => 'A Title'))
6
- connection.should have_add_with(:title_text => 'A Title')
7
- end
8
-
9
- it 'indexes stored text field' do
10
- session.index(post(:body => 'Test body'))
11
- connection.should have_add_with(:body_textsv => 'Test body')
12
- end
13
-
14
- it 'indexes text field with boost' do
15
- session.index(post(:title => 'A Title'))
16
- connection.adds.last.first.field_by_name(:title_text).attrs[:boost].should == 2
17
- end
18
-
19
- it 'indexes multiple values for a text field' do
20
- session.index(post(:body => %w(some title)))
21
- connection.should have_add_with(:body_textsv => %w(some title))
22
- end
23
-
24
- it 'indexes text via a block accessor' do
25
- session.index(post(:title => 'backwards'))
26
- connection.should have_add_with(:backwards_title_text => 'sdrawkcab')
27
- end
28
-
29
- it 'indexes document level boost using block' do
30
- session.index(post(:ratings_average => 4.0))
31
- connection.adds.last.first.attrs[:boost].should == 1.25
32
- end
33
-
34
- it 'indexes document level boost using attribute' do
35
- session.index(Namespaced::Comment.new(:boost => 1.5))
36
- connection.adds.last.first.attrs[:boost].should == 1.5
37
- end
38
-
39
- it 'indexes document level boost defined statically' do
40
- session.index(Photo.new)
41
- connection.adds.last.first.attrs[:boost].should == 0.75
42
- end
43
- end
@@ -1,53 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'document removal', :type => :indexer do
4
- it 'removes an object from the index' do
5
- session.remove(post)
6
- connection.should have_delete("Post #{post.id}")
7
- end
8
-
9
- it 'removes an object by type and id' do
10
- session.remove_by_id(Post, 1)
11
- connection.should have_delete('Post 1')
12
- end
13
-
14
- it 'removes an object by type and id and immediately commits' do
15
- connection.should_receive(:delete_by_id).with(['Post 1']).ordered
16
- connection.should_receive(:commit).ordered
17
- session.remove_by_id!(Post, 1)
18
- end
19
-
20
- it 'removes an object from the index and immediately commits' do
21
- connection.should_receive(:delete_by_id).ordered
22
- connection.should_receive(:commit).ordered
23
- session.remove!(post)
24
- end
25
-
26
- it 'removes everything from the index' do
27
- session.remove_all
28
- connection.should have_delete_by_query("*:*")
29
- end
30
-
31
- it 'removes everything from the index and immediately commits' do
32
- connection.should_receive(:delete_by_query).ordered
33
- connection.should_receive(:commit).ordered
34
- session.remove_all!
35
- end
36
-
37
- it 'removes everything of a given class from the index' do
38
- session.remove_all(Post)
39
- connection.should have_delete_by_query("type:Post")
40
- end
41
-
42
- it 'correctly escapes namespaced classes when removing everything from the index' do
43
- connection.should_receive(:delete_by_query).with('type:Namespaced\:\:Comment')
44
- session.remove_all(Namespaced::Comment)
45
- end
46
-
47
- it 'should remove by query' do
48
- session.remove(Post) do
49
- with(:title, 'monkeys')
50
- end
51
- connection.should have_delete_by_query("(type:Post AND title_ss:monkeys)")
52
- end
53
- end
@@ -1 +0,0 @@
1
- require File.expand_path('spec_helper', File.join(File.dirname(__FILE__), '..'))
@@ -1,14 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'indexer', :type => :indexer do
4
- it 'should completely wipe setup if class redefined (reloaded)' do
5
- Object::ReloadableClass = Class.new(MockRecord)
6
- Sunspot.setup(ReloadableClass) { string(:title) }
7
- Object.class_eval { remove_const(:ReloadableClass) }
8
- Object::ReloadableClass = Class.new(MockRecord)
9
- Sunspot.setup(ReloadableClass) {}
10
- lambda do
11
- Sunspot.search(ReloadableClass) { with(:title, 'title') }
12
- end.should raise_error(Sunspot::UnrecognizedFieldError)
13
- end
14
- end
@@ -1,35 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- shared_examples_for "query with advanced manipulation" do
4
- describe 'adjust_solr_params' do
5
- before :each do
6
- search do
7
- adjust_solr_params do |params|
8
- params[:rows] = 40
9
- params[:qt] = 'complicated'
10
- end
11
- end
12
- end
13
-
14
- it "modifies existing param" do
15
- connection.should have_last_search_with(:rows => 40)
16
- end
17
-
18
- it "adds new param" do
19
- connection.should have_last_search_with(:qt => 'complicated')
20
- end
21
- end
22
-
23
- describe 'request_handler' do
24
- before :each do
25
- connection.expected_handler = :myRequestHandler
26
- search do
27
- request_handler :myRequestHandler
28
- end
29
- end
30
-
31
- it 'should use specified request handler' do
32
- connection.should have_last_search_with({})
33
- end
34
- end
35
- end
@@ -1,201 +0,0 @@
1
- shared_examples_for "query with connective scope" do
2
- it 'creates a disjunction between two restrictions' do
3
- search do
4
- any_of do
5
- with :category_ids, 1
6
- with :blog_id, 2
7
- end
8
- end
9
- connection.should have_last_search_including(
10
- :fq, '(category_ids_im:1 OR blog_id_i:2)'
11
- )
12
- end
13
-
14
- it 'creates a conjunction inside of a disjunction' do
15
- search do
16
- any_of do
17
- with :blog_id, 2
18
- all_of do
19
- with :category_ids, 1
20
- with(:average_rating).greater_than(3.0)
21
- end
22
- end
23
- end
24
- connection.should have_last_search_including(
25
- :fq,
26
- '(blog_id_i:2 OR (category_ids_im:1 AND average_rating_ft:{3\.0 TO *}))'
27
- )
28
- end
29
-
30
- it 'creates a disjunction with nested conjunction with negated restrictions' do
31
- search do
32
- any_of do
33
- with :category_ids, 1
34
- all_of do
35
- without(:average_rating).greater_than(3.0)
36
- with(:blog_id, 1)
37
- end
38
- end
39
- end
40
- connection.should have_last_search_including(
41
- :fq, '(category_ids_im:1 OR (-average_rating_ft:{3\.0 TO *} AND blog_id_i:1))'
42
- )
43
- end
44
-
45
- it 'does nothing special if #all_of called from the top level' do
46
- search do
47
- all_of do
48
- with :blog_id, 2
49
- with :category_ids, 1
50
- end
51
- end
52
- connection.should have_last_search_including(
53
- :fq, 'blog_id_i:2', 'category_ids_im:1'
54
- )
55
- end
56
-
57
- it 'creates a disjunction with negated restrictions' do
58
- search do
59
- any_of do
60
- with :category_ids, 1
61
- without(:average_rating).greater_than(3.0)
62
- end
63
- end
64
- connection.should have_last_search_including(
65
- :fq, '-(-category_ids_im:1 AND average_rating_ft:{3\.0 TO *})'
66
- )
67
- end
68
-
69
- it 'creates a disjunction with a negated restriction and a nested disjunction in a conjunction with a negated restriction' do
70
- search do
71
- any_of do
72
- without(:title, 'Yes')
73
- all_of do
74
- with(:blog_id, 1)
75
- any_of do
76
- with(:category_ids, 4)
77
- without(:average_rating, 2.0)
78
- end
79
- end
80
- end
81
- end
82
- connection.should have_last_search_including(
83
- :fq, '-(title_ss:Yes AND -(blog_id_i:1 AND -(-category_ids_im:4 AND average_rating_ft:2\.0)))'
84
- )
85
- end
86
- it 'creates a disjunction with nested conjunction with nested disjunction with negated restriction' do
87
- search do
88
- any_of do
89
- with(:title, 'Yes')
90
- all_of do
91
- with(:blog_id, 1)
92
- any_of do
93
- with(:category_ids, 4)
94
- without(:average_rating, 2.0)
95
- end
96
- end
97
- end
98
- end
99
- connection.should have_last_search_including(
100
- :fq, '(title_ss:Yes OR (blog_id_i:1 AND -(-category_ids_im:4 AND average_rating_ft:2\.0)))'
101
- )
102
- end
103
-
104
- #
105
- # This is important because if a disjunction could be nested in another
106
- # disjunction, then the inner disjunction could denormalize (and thus
107
- # become negated) after the outer disjunction denormalized (checking to
108
- # see if the inner one is negated). Since conjunctions never need to
109
- # denormalize, if a disjunction can only contain conjunctions or restrictions,
110
- # we can guarantee that the negation state of a disjunction's components will
111
- # not change when #to_params is called on them.
112
- #
113
- # Since disjunction is associative, this behavior has no effect on the actual
114
- # logical semantics of the disjunction.
115
- #
116
- it 'creates a single disjunction when disjunctions nested' do
117
- search do
118
- any_of do
119
- with(:title, 'Yes')
120
- any_of do
121
- with(:blog_id, 1)
122
- with(:category_ids, 4)
123
- end
124
- end
125
- end
126
- connection.should have_last_search_including(
127
- :fq, '(title_ss:Yes OR blog_id_i:1 OR category_ids_im:4)'
128
- )
129
- end
130
-
131
- it 'creates a disjunction with instance exclusion' do
132
- post = Post.new
133
- search do
134
- any_of do
135
- without(post)
136
- with(:category_ids, 1)
137
- end
138
- end
139
- connection.should have_last_search_including(
140
- :fq, "-(id:(Post\\ #{post.id}) AND -category_ids_im:1)"
141
- )
142
- end
143
-
144
- it 'creates a disjunction with empty restriction' do
145
- search do
146
- any_of do
147
- with(:average_rating, nil)
148
- with(:average_rating).greater_than(3.0)
149
- end
150
- end
151
- connection.should have_last_search_including(
152
- :fq, '-(average_rating_ft:[* TO *] AND -average_rating_ft:{3\.0 TO *})'
153
- )
154
- end
155
-
156
- it 'creates a disjunction with instance inclusion' do
157
- post = Post.new
158
- search do
159
- any_of do
160
- with(post)
161
- with(:average_rating).greater_than(3.0)
162
- end
163
- end
164
- connection.should have_last_search_including(
165
- :fq, "(id:(Post\\ #{post.id}) OR average_rating_ft:{3\\.0 TO *})"
166
- )
167
- end
168
-
169
- it 'creates a disjunction with some text field components' do
170
- search do
171
- any_of do
172
- text_fields do
173
- with(:title).starting_with('test')
174
- end
175
- with(:blog_id, 1)
176
- end
177
- end
178
- connection.should have_last_search_including(
179
- :fq, '(title_text:test* OR blog_id_i:1)'
180
- )
181
- end
182
-
183
- it 'should ignore empty connectives' do
184
- search do
185
- any_of {}
186
- end
187
- connection.should_not have_last_search_including(:fq, '')
188
- end
189
-
190
- it 'creates a conjunction of in_radius queries' do
191
- search do
192
- any_of do
193
- with(:coordinates_new).in_radius(23, -46, 100)
194
- with(:coordinates_new).in_radius(42, 56, 50)
195
- end
196
- end
197
- connection.should have_last_search_including(
198
- :fq, '(_query_:"{!geofilt sfield=coordinates_new_ll pt=23,-46 d=100}" OR _query_:"{!geofilt sfield=coordinates_new_ll pt=42,56 d=50}")'
199
- )
200
- end
201
- end