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,64 +0,0 @@
1
- require File.expand_path('../spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'local search' do
4
- ORIGIN = [40.7246062, -73.9969018]
5
- LOCATIONS = [
6
- [40.7246062, -73.9969018], # dr5rsjtn50yf
7
- [40.724606, -73.996902], # dr5rsjtn50y9
8
- [40.724606, -73.996901], # dr5rsjtn50z3
9
- [40.72461, -73.996906] # dr5rsjtn51ec
10
- ].map { |lat, lng| Sunspot::Util::Coordinates.new(lat, lng) }
11
-
12
- before :each do
13
- Sunspot.remove_all
14
- end
15
-
16
- describe 'without fulltext' do
17
- before :each do
18
- @posts = LOCATIONS.map do |location|
19
- Post.new(:coordinates => location)
20
- end
21
- Sunspot.index!(@posts)
22
- @search = Sunspot.search(Post) do
23
- with(:coordinates).near(ORIGIN[0], ORIGIN[1], :precision_factor => 4.0)
24
- end
25
- end
26
-
27
- it 'should return results in geo order' do
28
- @search.results.should == @posts
29
- end
30
-
31
- it 'should asssign higher score to closer locations' do
32
- hits = @search.hits
33
- hits[1..-1].each_with_index do |hit, i|
34
- hit.score.should < hits[i].score
35
- end
36
- end
37
- end
38
-
39
- describe 'with fulltext' do
40
- before :each do
41
- @posts = [
42
- Post.new(:title => 'pizza', :coordinates => LOCATIONS[0]),
43
- Post.new(:title => 'pizza', :coordinates => LOCATIONS[1]),
44
- Post.new(:title => 'pasta calzone pizza antipasti', :coordinates => LOCATIONS[1])
45
- ]
46
- Sunspot.index!(@posts)
47
- @search = Sunspot.search(Post) do
48
- keywords 'pizza'
49
- with(:coordinates).near(ORIGIN[0], ORIGIN[1])
50
- end
51
- end
52
-
53
- it 'should take both fulltext and distance into account in ordering' do
54
- @search.results.should == @posts
55
- end
56
-
57
- it 'should take both fulltext and distance into account in scoring' do
58
- hits = @search.hits
59
- hits[1..-1].each_with_index do |hit, i|
60
- hit.score.should < hits[i].score
61
- end
62
- end
63
- end
64
- end
@@ -1,43 +0,0 @@
1
- require File.expand_path('../spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'more_like_this' do
4
- before :all do
5
- Sunspot.remove_all
6
- @posts = [
7
- Post.new(:body => "one two three", :tags => %w(ruby sunspot rsolr)),
8
- Post.new(:body => "four five six", :tags => %w(ruby solr lucene)),
9
- Post.new(:body => "two three four", :tags => %w(python sqlalchemy)),
10
- Post.new(:body => "three four five", :tags => %w(ruby sunspot mat)),
11
- Post.new(:body => "six seven eight", :tags => %w(bogus airplane))
12
- ]
13
- Sunspot.index!(@posts)
14
- end
15
-
16
- it 'should return results for all MLT fields' do
17
- Sunspot.more_like_this(@posts.first).results.to_set.should == @posts[1..3].to_set
18
- end
19
-
20
- it 'should return results for specified text field' do
21
- Sunspot.more_like_this(@posts.first) do
22
- fields :body
23
- end.results.to_set.should == @posts[2..3].to_set
24
- end
25
-
26
- it 'should return empty result set if no results' do
27
- Sunspot.more_like_this(@posts.last) do
28
- with(:title, 'bogus')
29
- end.results.should == []
30
- end
31
-
32
- describe 'when non-indexed object searched' do
33
- before(:each) { @mlt = Sunspot.more_like_this(Post.new) }
34
-
35
- it 'should return empty result set' do
36
- @mlt.results.should == []
37
- end
38
-
39
- it 'shoult return a total of 0' do
40
- @mlt.total.should == 0
41
- end
42
- end
43
- end
@@ -1,386 +0,0 @@
1
- require File.expand_path('../spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'scoped_search' do
4
- def self.test_field_type(name, attribute, field, *values)
5
- clazz =
6
- if values.first.is_a?(Class)
7
- values.shift
8
- else
9
- Post
10
- end
11
- raise(ArgumentError, 'Please supply five values') unless values.length == 5
12
-
13
- context "with field of type #{name}" do
14
- before :all do
15
- Sunspot.remove_all
16
- @objects = values.map do |value|
17
- object = clazz.new(attribute => value)
18
- Sunspot.index(object)
19
- object
20
- end
21
- Sunspot.commit
22
- end
23
-
24
- it 'should filter by exact match' do
25
- Sunspot.search(clazz) { with(field, values[2]) }.results.should == [@objects[2]]
26
- end
27
-
28
- it 'should reject by inexact match' do
29
- results = Sunspot.search(clazz) { without(field, values[2]) }.results
30
- [0, 1, 3, 4].each { |i| results.should include(@objects[i]) }
31
- results.should_not include(@objects[2])
32
- end
33
-
34
- it 'should filter by less than' do
35
- results = Sunspot.search(clazz) { with(field).less_than values[2] }.results
36
- (0..1).each { |i| results.should include(@objects[i]) }
37
- (2..4).each { |i| results.should_not include(@objects[i]) }
38
- end
39
-
40
- it 'should reject by less than' do
41
- results = Sunspot.search(clazz) { without(field).less_than values[2] }.results
42
- (0..1).each { |i| results.should_not include(@objects[i]) }
43
- (2..4).each { |i| results.should include(@objects[i]) }
44
- end
45
-
46
- it 'should filter by less than or equal to' do
47
- results = Sunspot.search(clazz) { with(field).less_than_or_equal_to values[2] }.results
48
- (0..2).each { |i| results.should include(@objects[i]) }
49
- (3..4).each { |i| results.should_not include(@objects[i]) }
50
- end
51
-
52
- it 'should reject by less than or equal to' do
53
- results = Sunspot.search(clazz) { without(field).less_than_or_equal_to values[2] }.results
54
- (0..2).each { |i| results.should_not include(@objects[i]) }
55
- (3..4).each { |i| results.should include(@objects[i]) }
56
- end
57
-
58
- it 'should filter by greater than' do
59
- results = Sunspot.search(clazz) { with(field).greater_than values[2] }.results
60
- (3..4).each { |i| results.should include(@objects[i]) }
61
- (0..2).each { |i| results.should_not include(@objects[i]) }
62
- end
63
-
64
- it 'should reject by greater than' do
65
- results = Sunspot.search(clazz) { without(field).greater_than values[2] }.results
66
- (3..4).each { |i| results.should_not include(@objects[i]) }
67
- (0..2).each { |i| results.should include(@objects[i]) }
68
- end
69
-
70
- it 'should filter by greater than or equal to' do
71
- results = Sunspot.search(clazz) { with(field).greater_than_or_equal_to values[2] }.results
72
- (2..4).each { |i| results.should include(@objects[i]) }
73
- (0..1).each { |i| results.should_not include(@objects[i]) }
74
- end
75
-
76
- it 'should reject by greater than' do
77
- results = Sunspot.search(clazz) { without(field).greater_than_or_equal_to values[2] }.results
78
- (2..4).each { |i| results.should_not include(@objects[i]) }
79
- (0..1).each { |i| results.should include(@objects[i]) }
80
- end
81
-
82
- it 'should filter by between' do
83
- results = Sunspot.search(clazz) { with(field).between(values[1]..values[3]) }.results
84
- (1..3).each { |i| results.should include(@objects[i]) }
85
- [0, 4].each { |i| results.should_not include(@objects[i]) }
86
- end
87
-
88
- it 'should reject by between' do
89
- results = Sunspot.search(clazz) { without(field).between(values[1]..values[3]) }.results
90
- (1..3).each { |i| results.should_not include(@objects[i]) }
91
- [0, 4].each { |i| results.should include(@objects[i]) }
92
- end
93
-
94
- it 'should filter by any of' do
95
- results = Sunspot.search(clazz) { with(field).any_of(values.values_at(1, 3)) }.results
96
- [1, 3].each { |i| results.should include(@objects[i]) }
97
- [0, 2, 4].each { |i| results.should_not include(@objects[i]) }
98
- end
99
-
100
- it 'should reject by any of' do
101
- results = Sunspot.search(clazz) { without(field).any_of(values.values_at(1, 3)) }.results
102
- [1, 3].each { |i| results.should_not include(@objects[i]) }
103
- [0, 2, 4].each { |i| results.should include(@objects[i]) }
104
- end
105
-
106
- it 'should order by field ascending' do
107
- results = Sunspot.search(clazz) { order_by field, :asc }.results
108
- results.should == @objects
109
- end
110
-
111
- it 'should order by field descending' do
112
- results = Sunspot.search(clazz) { order_by field, :desc }.results
113
- results.should == @objects.reverse
114
- end
115
- end
116
- end
117
-
118
- test_field_type 'String', :title, :title, 'apple pie', 'banana split', 'cherry tart', 'date pastry', 'eggplant a la mode'
119
- test_field_type 'Integer', :blog_id, :blog_id, -2, 0, 3, 12, 20
120
- test_field_type 'Long', :hash, :hash, Namespaced::Comment, 2**29, 2**30, 2**31, 2**32, 2**33
121
- test_field_type 'Float', :ratings_average, :average_rating, -2.5, 0.0, 3.2, 3.5, 16.0
122
- test_field_type 'Double', :average_rating, :average_rating, Namespaced::Comment, -2.5, 0.0, 3.2, 3.5, 16.0
123
- test_field_type 'Time', :published_at, :published_at, *(['1970-01-01 00:00:00 UTC', '1983-07-08 04:00:00 UTC', '1983-07-08 02:00:00 -0500',
124
- '2005-11-05 10:00:00 UTC', Time.now.to_s].map { |t| Time.parse(t) })
125
- test_field_type 'Trie Integer', :size, :size, Photo, -2, 0, 3, 12, 20
126
- test_field_type 'Trie Float', :average_rating, :average_rating, Photo, -2.5, 0.0, 3.2, 3.5, 16.0
127
- test_field_type 'Trie Time', :created_at, :created_at, Photo, *(['1970-01-01 00:00:00 UTC', '1983-07-08 04:00:00 UTC', '1983-07-08 02:00:00 -0500',
128
- '2005-11-05 10:00:00 UTC', Time.now.to_s].map { |t| Time.parse(t) })
129
-
130
- describe 'Boolean field type' do
131
- before :all do
132
- Sunspot.remove_all
133
- @posts = [Post.new(:featured => true), Post.new(:featured => false), Post.new]
134
- Sunspot.index!(@posts)
135
- end
136
-
137
- it 'should filter by exact match for true' do
138
- Sunspot.search(Post) { with(:featured, true) }.results.should == [@posts[0]]
139
- end
140
-
141
- it 'should filter for exact match for false' do
142
- Sunspot.search(Post) { with(:featured, false) }.results.should == [@posts[1]]
143
- end
144
- end
145
-
146
- describe 'Legacy (static) fields' do
147
- it "allows for using symbols in defining static field names" do
148
- Sunspot.remove_all
149
- Sunspot.index!(legacy = Post.new(:title => "foo"))
150
- Sunspot.search(Post) { with(:legacy, "legacy foo") }.results.should == [legacy]
151
- end
152
- end
153
-
154
- describe 'reserved words' do
155
- %w(AND OR NOT TO).each do |word|
156
- it "should successfully search for #{word.inspect}" do
157
- Sunspot.index!(post = Post.new(:title => word))
158
- Sunspot.search(Post) { with(:title, word) }.results.should == [post]
159
- end
160
- end
161
- end
162
-
163
- describe 'passing nil value to equal' do
164
- before :all do
165
- Sunspot.remove_all
166
- @posts = [Post.new(:title => 'apple'), Post.new]
167
- Sunspot.index!(@posts)
168
- end
169
-
170
- it 'should filter results without value for field' do
171
- Sunspot.search(Post) { with(:title, nil) }.results.should == [@posts[1]]
172
- end
173
-
174
- it 'should exclude results without value for field' do
175
- Sunspot.search(Post) { without(:title, nil) }.results.should == [@posts[0]]
176
- end
177
- end
178
-
179
- describe 'prefix searching' do
180
- before :each do
181
- Sunspot.remove_all
182
- @posts = ['test', 'test post', 'some test', 'bogus'].map do |title|
183
- Post.new(:title => title)
184
- end
185
- Sunspot.index!(@posts)
186
- end
187
-
188
- it 'should return results whose prefix matches' do
189
- Sunspot.search(Post) { with(:title).starting_with('test') }.results.should == @posts[0..1]
190
- end
191
- end
192
-
193
- describe 'inclusion by identity' do
194
- before do
195
- @posts = (1..5).map do |i|
196
- post = Post.new
197
- Sunspot.index(post)
198
- post
199
- end
200
- Sunspot.commit
201
- end
202
-
203
- it 'should only return included object' do
204
- included_post = @posts.shift
205
- Sunspot.search(Post) { with(included_post) }.results.should include(included_post)
206
- end
207
-
208
- it 'should not return objects not included' do
209
- included_post = @posts.shift
210
- for excluded_post in @posts
211
- Sunspot.search(Post) { with(included_post) }.results.should_not include(excluded_post)
212
- end
213
- end
214
-
215
- it 'should return included objects' do
216
- included_posts = [@posts.shift, @posts.shift]
217
- for included_post in included_posts
218
- Sunspot.search(Post) { with(included_posts) }.results.should include(included_post)
219
- end
220
- end
221
- end
222
-
223
- describe 'exclusion by identity' do
224
- before do
225
- @posts = (1..5).map do |i|
226
- post = Post.new
227
- Sunspot.index(post)
228
- post
229
- end
230
- Sunspot.commit
231
- end
232
-
233
- it 'should not return excluded object' do
234
- excluded_post = @posts.shift
235
- Sunspot.search(Post) { without(excluded_post) }.results.should_not include(excluded_post)
236
- end
237
-
238
- it 'should return objects not excluded' do
239
- excluded_post = @posts.shift
240
- for included_post in @posts
241
- Sunspot.search(Post) { without(excluded_post) }.results.should include(included_post)
242
- end
243
- end
244
-
245
- it 'should not return excluded objects' do
246
- excluded_posts = [@posts.shift, @posts.shift]
247
- for excluded_post in excluded_posts
248
- Sunspot.search(Post) { without(excluded_posts) }.results.should_not include(excluded_post)
249
- end
250
- end
251
- end
252
-
253
- describe 'connectives' do
254
- before :each do
255
- Sunspot.remove_all
256
- end
257
-
258
- it 'should return results that match any restriction in a disjunction' do
259
- posts = (1..3).map { |i| Post.new(:blog_id => i)}
260
- Sunspot.index!(posts)
261
- Sunspot.search(Post) do
262
- any_of do
263
- with(:blog_id, 1)
264
- with(:blog_id, 2)
265
- end
266
- end.results.should == posts[0..1]
267
- end
268
-
269
- it 'should return results that match a nested conjunction in a disjunction' do
270
- posts = [
271
- Post.new(:title => 'No', :blog_id => 1),
272
- Post.new(:title => 'Yes', :blog_id => 2),
273
- Post.new(:title => 'Yes', :blog_id => 3),
274
- Post.new(:title => 'No', :blog_id => 2)
275
- ]
276
- Sunspot.index!(posts)
277
- Sunspot.search(Post) do
278
- any_of do
279
- with(:blog_id, 1)
280
- all_of do
281
- with(:blog_id, 2)
282
- with(:title, 'Yes')
283
- end
284
- end
285
- end.results.should == posts[0..1]
286
- end
287
-
288
- it 'should return results that match a conjunction with a negated restriction' do
289
- posts = [
290
- Post.new(:title => 'No', :blog_id => 1),
291
- Post.new(:title => 'Yes', :blog_id => 2),
292
- Post.new(:title => 'No', :blog_id => 2)
293
- ]
294
- Sunspot.index!(posts)
295
- search = Sunspot.search(Post) do
296
- any_of do
297
- with(:blog_id, 1)
298
- without(:title, 'No')
299
- end
300
- end
301
- search.results.should == posts[0..1]
302
- end
303
-
304
- it 'should return results that match a conjunction with a disjunction with a conjunction with a negated restriction' do
305
- posts = [
306
- Post.new(:title => 'Yes', :ratings_average => 2.0),
307
- Post.new(:blog_id => 1, :category_ids => [4], :ratings_average => 2.0),
308
- Post.new(:blog_id => 1),
309
- Post.new(:blog_id => 2),
310
- Post.new(:blog_id => 1, :ratings_average => 2.0)
311
- ]
312
- Sunspot.index!(posts)
313
- search = Sunspot.search(Post) do
314
- any_of do
315
- with(:title, 'Yes')
316
- all_of do
317
- with(:blog_id, 1)
318
- any_of do
319
- with(:category_ids, 4)
320
- without(:average_rating, 2.0)
321
- end
322
- end
323
- end
324
- end
325
- search.results.should == posts[0..2]
326
- end
327
-
328
- it 'should return results that match a disjunction with a negated restriction and a nested disjunction in a conjunction with a negated restriction' do
329
- posts = [
330
- Post.new,
331
- Post.new(:title => 'Yes', :blog_id => 1, :category_ids => [4], :ratings_average => 2.0),
332
- Post.new(:title => 'Yes', :blog_id => 1),
333
- Post.new(:title => 'Yes'),
334
- Post.new(:title => 'Yes', :category_ids => [4], :ratings_average => 2.0),
335
- Post.new(:title => 'Yes', :blog_id => 1, :ratings_average => 2.0)
336
- ]
337
- Sunspot.index!(posts)
338
- search = Sunspot.search(Post) do
339
- any_of do
340
- without(:title, 'Yes')
341
- all_of do
342
- with(:blog_id, 1)
343
- any_of do
344
- with(:category_ids, 4)
345
- without(:average_rating, 2.0)
346
- end
347
- end
348
- end
349
- end
350
- search.results.should == posts[0..2]
351
- end
352
- end
353
-
354
- describe 'multiple column ordering' do
355
- before do
356
- Sunspot.remove_all
357
- @posts = [
358
- Post.new(:ratings_average => 2, :title => 'banana'),
359
- Post.new(:ratings_average => 2, :title => 'eggplant'),
360
- Post.new(:ratings_average => 1, :title => 'apple')
361
- ].each { |post| Sunspot.index(post) }
362
- Sunspot.commit
363
- end
364
-
365
- it 'should order with precedence given' do
366
- search = Sunspot.search(Post) do
367
- order_by :average_rating, :desc
368
- order_by :sort_title, :asc
369
- end
370
- search.results.should == @posts
371
- end
372
- end
373
-
374
- describe 'ordering by random' do
375
- it 'should order randomly (run this test again if it fails)' do
376
- Sunspot.remove_all
377
- Sunspot.index!(Array.new(100) { Post.new })
378
- result_sets = Array.new(2) do
379
- Sunspot.search(Post) { order_by_random }.results.map do |result|
380
- result.id
381
- end
382
- end
383
- result_sets[0].should_not == result_sets[1]
384
- end
385
- end
386
- end