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,18 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'query DSL', :type => :query do
4
- it 'should allow building search using block argument rather than instance_eval' do
5
- @blog_id = 1
6
- session.search Post do |query|
7
- query.with(:blog_id, @blog_id)
8
- end
9
- connection.should have_last_search_including(:fq, 'blog_id_i:1')
10
- end
11
-
12
- it 'should accept a block in the #new_search method' do
13
- search = session.new_search(Post) { with(:blog_id, 1) }
14
- search.execute
15
- connection.should have_last_search_including(:fq, 'blog_id_i:1')
16
- end
17
- end
18
-
@@ -1,165 +0,0 @@
1
- shared_examples_for "query with dynamic field support" do
2
- it 'restricts by dynamic string field with equality restriction' do
3
- search do
4
- dynamic :custom_string do
5
- with :test, 'string'
6
- end
7
- end
8
- connection.should have_last_search_including(:fq, 'custom_string\:test_ss:string')
9
- end
10
-
11
- it 'restricts by dynamic integer field with less than restriction' do
12
- search do
13
- dynamic :custom_integer do
14
- with(:test).less_than(1)
15
- end
16
- end
17
- connection.should have_last_search_including(:fq, 'custom_integer\:test_i:{* TO 1}')
18
- end
19
-
20
- it 'restricts by dynamic float field with between restriction' do
21
- search do
22
- dynamic :custom_float do
23
- with(:test).between(2.2..3.3)
24
- end
25
- end
26
- connection.should have_last_search_including(:fq, 'custom_float\:test_fm:[2\.2 TO 3\.3]')
27
- end
28
-
29
- it 'restricts by dynamic time field with any of restriction' do
30
- search do
31
- dynamic :custom_time do
32
- with(:test).any_of([Time.parse('2009-02-10 14:00:00 UTC'),
33
- Time.parse('2009-02-13 18:00:00 UTC')])
34
- end
35
- end
36
- connection.should have_last_search_including(:fq, 'custom_time\:test_d:(2009\-02\-10T14\:00\:00Z OR 2009\-02\-13T18\:00\:00Z)')
37
- end
38
-
39
- it 'restricts by dynamic boolean field with equality restriction' do
40
- search do
41
- dynamic :custom_boolean do
42
- with :test, false
43
- end
44
- end
45
- connection.should have_last_search_including(:fq, 'custom_boolean\:test_b:false')
46
- end
47
-
48
- it 'negates a dynamic field restriction' do
49
- search do
50
- dynamic :custom_string do
51
- without :test, 'foo'
52
- end
53
- end
54
- connection.should have_last_search_including(:fq, '-custom_string\:test_ss:foo')
55
- end
56
-
57
- it 'scopes by a dynamic field inside a disjunction' do
58
- search do
59
- any_of do
60
- dynamic :custom_string do
61
- with :test, 'foo'
62
- end
63
- with :title, 'bar'
64
- end
65
- end
66
- connection.should have_last_search_including(
67
- :fq, '(custom_string\:test_ss:foo OR title_ss:bar)'
68
- )
69
- end
70
-
71
- it 'orders by a dynamic field' do
72
- search do
73
- dynamic :custom_integer do
74
- order_by :test, :desc
75
- end
76
- end
77
- connection.should have_last_search_with(:sort => 'custom_integer:test_i desc')
78
- end
79
-
80
- it 'orders by a dynamic field and static field, with given precedence' do
81
- search do
82
- dynamic :custom_integer do
83
- order_by :test, :desc
84
- end
85
- order_by :sort_title, :asc
86
- end
87
- connection.should have_last_search_with(:sort => 'custom_integer:test_i desc, sort_title_s asc')
88
- end
89
-
90
- it 'raises an UnrecognizedFieldError if an unknown dynamic field is searched by' do
91
- lambda do
92
- search do
93
- dynamic(:bogus) { with :some, 'value' }
94
- end
95
- end.should raise_error(Sunspot::UnrecognizedFieldError)
96
- end
97
-
98
- it 'raises a NoMethodError if pagination is attempted in a dynamic query' do
99
- lambda do
100
- search do
101
- dynamic :custom_string do
102
- paginate :page => 3, :per_page => 10
103
- end
104
- end
105
- end.should raise_error(NoMethodError)
106
- end
107
-
108
- it 'requests field facet on dynamic field' do
109
- search do
110
- dynamic :custom_string do
111
- facet(:test)
112
- end
113
- end
114
- connection.should have_last_search_including(:"facet.field", 'custom_string:test_ss')
115
- end
116
-
117
- it 'requests named field facet on dynamic field' do
118
- search do
119
- dynamic :custom_string do
120
- facet(:test, :name => :bogus)
121
- end
122
- end
123
- connection.should have_last_search_including(:"facet.field", '{!key=bogus}custom_string:test_ss')
124
- end
125
-
126
- it 'requests query facet with internal dynamic field' do
127
- search do
128
- facet :test do
129
- row 'foo' do
130
- dynamic :custom_string do
131
- with :test, 'foo'
132
- end
133
- end
134
- end
135
- end
136
- connection.should have_last_search_with(
137
- :"facet.query" => 'custom_string\:test_ss:foo'
138
- )
139
- end
140
-
141
- it 'requests query facet with external dynamic field' do
142
- search do
143
- dynamic :custom_string do
144
- facet :test do
145
- row 'foo' do
146
- with :test, 'foo'
147
- end
148
- end
149
- end
150
- end
151
- connection.should have_last_search_including(
152
- :"facet.query",
153
- 'custom_string\:test_ss:foo'
154
- )
155
- end
156
-
157
- it 'allows scoping on dynamic fields common to all types' do
158
- search Post, Namespaced::Comment do
159
- dynamic :custom_float do
160
- with(:test, 1.23)
161
- end
162
- end
163
- connection.should have_last_search_including(:fq, 'custom_float\\:test_fm:1\\.23')
164
- end
165
- end
@@ -1,497 +0,0 @@
1
- shared_examples_for "facetable query" do
2
- describe 'on fields' do
3
- it 'does not turn faceting on if no facet requested' do
4
- search
5
- connection.should_not have_last_search_with('facet')
6
- end
7
-
8
- it 'turns faceting on if facet is requested' do
9
- search do
10
- facet :category_ids
11
- end
12
- connection.should have_last_search_with(:facet => 'true')
13
- end
14
-
15
- it 'requests single field facet' do
16
- search do
17
- facet :category_ids
18
- end
19
- connection.should have_last_search_with(:"facet.field" => %w(category_ids_im))
20
- end
21
-
22
- it 'requests multiple field facets' do
23
- search do
24
- facet :category_ids, :blog_id
25
- end
26
- connection.should have_last_search_with(:"facet.field" => %w(category_ids_im blog_id_i))
27
- end
28
-
29
- it 'sets facet sort by count' do
30
- search do
31
- facet :category_ids, :sort => :count
32
- end
33
- connection.should have_last_search_with(:"f.category_ids_im.facet.sort" => 'true')
34
- end
35
-
36
- it 'sets facet sort by index' do
37
- search do
38
- facet :category_ids, :sort => :index
39
- end
40
- connection.should have_last_search_with(:"f.category_ids_im.facet.sort" => 'false')
41
- end
42
-
43
- it 'raises ArgumentError if bogus facet sort provided' do
44
- lambda do
45
- search do
46
- facet :category_ids, :sort => :sideways
47
- end
48
- end.should raise_error(ArgumentError)
49
- end
50
-
51
- it 'sets the facet limit' do
52
- search do
53
- facet :category_ids, :limit => 10
54
- end
55
- connection.should have_last_search_with(:"f.category_ids_im.facet.limit" => 10)
56
- end
57
-
58
- it 'sets the facet offset' do
59
- search do
60
- facet :category_ids, :offset => 10
61
- end
62
- connection.should have_last_search_with(:"f.category_ids_im.facet.offset" => 10)
63
- end
64
-
65
- it 'sets the facet minimum count' do
66
- search do
67
- facet :category_ids, :minimum_count => 5
68
- end
69
- connection.should have_last_search_with(:"f.category_ids_im.facet.mincount" => 5)
70
- end
71
-
72
- it 'sets the facet minimum count to zero if zeros are allowed' do
73
- search do
74
- facet :category_ids, :zeros => true
75
- end
76
- connection.should have_last_search_with(:"f.category_ids_im.facet.mincount" => 0)
77
- end
78
-
79
- it 'sets the facet minimum count to one by default' do
80
- search do
81
- facet :category_ids
82
- end
83
- connection.should have_last_search_with(:"f.category_ids_im.facet.mincount" => 1)
84
- end
85
-
86
- it 'sets the facet prefix' do
87
- search do
88
- facet :title, :prefix => 'Test'
89
- end
90
- connection.should have_last_search_with(:"f.title_ss.facet.prefix" => 'Test')
91
- end
92
-
93
- it 'sends a query facet for :any extra' do
94
- search do
95
- facet :category_ids, :extra => :any
96
- end
97
- connection.should have_last_search_with(:"facet.query" => "category_ids_im:[* TO *]")
98
- end
99
-
100
- it 'sends a query facet for :none extra' do
101
- search do
102
- facet :category_ids, :extra => :none
103
- end
104
- connection.should have_last_search_with(:"facet.query" => "-category_ids_im:[* TO *]")
105
- end
106
-
107
- it 'raises an ArgumentError if bogus extra is passed' do
108
- lambda do
109
- search do
110
- facet :category_ids, :extra => :bogus
111
- end
112
- end.should raise_error(ArgumentError)
113
- end
114
-
115
- it 'tags and excludes a scope filter in a field facet' do
116
- search do
117
- blog_filter = with(:blog_id, 1)
118
- facet(:blog_id, :exclude => blog_filter)
119
- end
120
- filter_tag = get_filter_tag('blog_id_i:1')
121
- connection.should have_last_search_with(
122
- :"facet.field" => %W({!ex=#{filter_tag}}blog_id_i)
123
- )
124
- end
125
-
126
- it 'tags and excludes a disjunction filter in a field facet' do
127
- search do
128
- blog_filter = any_of do
129
- with(:blog_id, 1)
130
- with(:blog_id, 2)
131
- end
132
- facet(:blog_id, :exclude => blog_filter)
133
- end
134
- filter_tag = get_filter_tag('(blog_id_i:1 OR blog_id_i:2)')
135
- connection.should have_last_search_with(
136
- :"facet.field" => %W({!ex=#{filter_tag}}blog_id_i)
137
- )
138
- end
139
-
140
- it 'tags and excludes multiple filters in a field facet' do
141
- search do
142
- blog_filter = with(:blog_id, 1)
143
- category_filter = with(:category_ids, 2)
144
- facet(:blog_id, :exclude => [blog_filter, category_filter])
145
- end
146
- filter_tags = %w(blog_id_i:1 category_ids_im:2).map do |phrase|
147
- get_filter_tag(phrase)
148
- end.join(',')
149
- connection.should have_last_search_with(
150
- :"facet.field" => %W({!ex=#{filter_tags}}blog_id_i)
151
- )
152
- end
153
-
154
- it 'does not tag a filter if it is not excluded' do
155
- search do
156
- with(:blog_id, 1)
157
- end
158
- connection.should have_last_search_including(:fq, "blog_id_i:1")
159
- end
160
-
161
- it 'names a field facet' do
162
- search do
163
- facet(:blog_id, :name => :blog)
164
- end
165
- connection.should have_last_search_including(:"facet.field", "{!key=blog}blog_id_i")
166
- end
167
-
168
- it 'uses the custom field facet name in facet option parameters' do
169
- search do
170
- facet(:blog_id, :name => :blog, :sort => :count)
171
- end
172
- connection.should have_last_search_with(:"f.blog.facet.sort" => 'true')
173
- end
174
-
175
- it 'raises an ArgumentError if exclusion attempted on a restricted field facet' do
176
- lambda do
177
- search do
178
- blog_filter = with(:blog_id, 1)
179
- facet(:blog_id, :only => 1, :exclude => blog_filter)
180
- end
181
- end.should raise_error(ArgumentError)
182
- end
183
-
184
- it 'raises an ArgumentError if exclusion attempted on a facet with :extra' do
185
- lambda do
186
- search do
187
- blog_filter = with(:blog_id, 1)
188
- facet(:blog_id, :extra => :all, :exclude => blog_filter)
189
- end
190
- end.should raise_error(ArgumentError)
191
- end
192
- end
193
-
194
- describe 'on time ranges' do
195
- before :each do
196
- @time_range = (Time.parse('2009-06-01 00:00:00 -0400')..
197
- Time.parse('2009-07-01 00:00:00 -0400'))
198
- end
199
-
200
- it 'does not send date facet parameters if time range is not specified' do
201
- search do |query|
202
- query.facet :published_at
203
- end
204
- connection.should_not have_last_search_with(:"facet.date")
205
- end
206
-
207
- it 'sets the facet to a date facet if time range is specified' do
208
- search do |query|
209
- query.facet :published_at, :time_range => @time_range
210
- end
211
- connection.should have_last_search_with(:"facet.date" => ['published_at_dt'])
212
- end
213
-
214
- it 'sets the facet start and end' do
215
- search do |query|
216
- query.facet :published_at, :time_range => @time_range
217
- end
218
- connection.should have_last_search_with(
219
- :"f.published_at_dt.facet.date.start" => '2009-06-01T04:00:00Z',
220
- :"f.published_at_dt.facet.date.end" => '2009-07-01T04:00:00Z'
221
- )
222
- end
223
-
224
- it 'defaults the time interval to 1 day' do
225
- search do |query|
226
- query.facet :published_at, :time_range => @time_range
227
- end
228
- connection.should have_last_search_with(:"f.published_at_dt.facet.date.gap" => "+86400SECONDS")
229
- end
230
-
231
- it 'uses custom time interval' do
232
- search do |query|
233
- query.facet :published_at, :time_range => @time_range, :time_interval => 3600
234
- end
235
- connection.should have_last_search_with(:"f.published_at_dt.facet.date.gap" => "+3600SECONDS")
236
- end
237
-
238
- it 'does not allow date faceting on a non-date field' do
239
- lambda do
240
- search do |query|
241
- query.facet :blog_id, :time_range => @time_range
242
- end
243
- end.should raise_error(ArgumentError)
244
- end
245
- end
246
-
247
- describe 'on range facets' do
248
- before :each do
249
- @range = 2..4
250
- end
251
-
252
- it 'does not send range facet parameters if integer range is not specified' do
253
- search do |query|
254
- query.facet :average_rating
255
- end
256
- connection.should_not have_last_search_with(:"facet.range")
257
- end
258
-
259
- it 'sets the facet to a range facet if the range is specified' do
260
- search do |query|
261
- query.facet :average_rating, :range => @range
262
- end
263
- connection.should have_last_search_with(:"facet.range" => ['average_rating_ft'])
264
- end
265
-
266
- it 'sets the facet start and end' do
267
- search do |query|
268
- query.facet :average_rating, :range => @range
269
- end
270
- connection.should have_last_search_with(
271
- :"f.average_rating_ft.facet.range.start" => '2.0',
272
- :"f.average_rating_ft.facet.range.end" => '4.0'
273
- )
274
- end
275
-
276
- it 'defaults the range interval to 10' do
277
- search do |query|
278
- query.facet :average_rating, :range => @range
279
- end
280
- connection.should have_last_search_with(:"f.average_rating_ft.facet.range.gap" => "10")
281
- end
282
-
283
- it 'uses custom range interval' do
284
- search do |query|
285
- query.facet :average_rating, :range => @range, :range_interval => 1
286
- end
287
- connection.should have_last_search_with(:"f.average_rating_ft.facet.range.gap" => "1")
288
- end
289
-
290
- it 'sets the include if one is specified' do
291
- search do |query|
292
- query.facet :average_rating, :range => @range, :include => :edge
293
- end
294
- connection.should have_last_search_with(:"f.average_rating_ft.facet.range.include" => "edge")
295
- end
296
-
297
- it 'does not allow date faceting on a non-continuous field' do
298
- lambda do
299
- search do |query|
300
- query.facet :title, :range => @range
301
- end
302
- end.should raise_error(ArgumentError)
303
- end
304
- end
305
-
306
- describe 'using queries' do
307
- it 'turns faceting on' do
308
- search do
309
- facet :foo do
310
- row :bar do
311
- with(:average_rating).between(4.0..5.0)
312
- end
313
- end
314
- end
315
- connection.should have_last_search_with(:facet => 'true')
316
- end
317
-
318
- it 'facets by query' do
319
- search do
320
- facet :foo do
321
- row :bar do
322
- with(:average_rating).between(4.0..5.0)
323
- end
324
- end
325
- end
326
- connection.should have_last_search_with(:"facet.query" => 'average_rating_ft:[4\.0 TO 5\.0]')
327
- end
328
-
329
- it 'requests multiple query facets' do
330
- search do
331
- facet :foo do
332
- row :bar do
333
- with(:average_rating).between(3.0..4.0)
334
- end
335
- row :baz do
336
- with(:average_rating).between(4.0..5.0)
337
- end
338
- end
339
- end
340
- connection.should have_last_search_with(
341
- :"facet.query" => [
342
- 'average_rating_ft:[3\.0 TO 4\.0]',
343
- 'average_rating_ft:[4\.0 TO 5\.0]'
344
- ]
345
- )
346
- end
347
-
348
- it 'requests query facet with multiple conditions' do
349
- search do
350
- facet :foo do
351
- row :bar do
352
- with(:category_ids, 1)
353
- with(:blog_id, 2)
354
- end
355
- end
356
- end
357
- connection.should have_last_search_with(
358
- :"facet.query" => '(category_ids_im:1 AND blog_id_i:2)'
359
- )
360
- end
361
-
362
- it 'requests query facet with disjunction' do
363
- search do
364
- facet :foo do
365
- row :bar do
366
- any_of do
367
- with(:category_ids, 1)
368
- with(:blog_id, 2)
369
- end
370
- end
371
- end
372
- end
373
- connection.should have_last_search_with(
374
- :"facet.query" => '(category_ids_im:1 OR blog_id_i:2)'
375
- )
376
- end
377
-
378
- it 'builds query facets when passed :only argument to field facet declaration' do
379
- search do
380
- facet :category_ids, :only => [1, 3]
381
- end
382
- connection.should have_last_search_with(
383
- :"facet.query" => ['category_ids_im:1', 'category_ids_im:3']
384
- )
385
- end
386
-
387
- it 'converts limited query facet values to the correct type' do
388
- search do
389
- facet :published_at, :only => [Time.utc(2009, 8, 28, 15, 33), Time.utc(2008,8, 28, 15, 33)]
390
- end
391
- connection.should have_last_search_with(
392
- :"facet.query" => [
393
- 'published_at_dt:2009\-08\-28T15\:33\:00Z',
394
- 'published_at_dt:2008\-08\-28T15\:33\:00Z'
395
- ]
396
- )
397
- end
398
-
399
- it 'ignores facet query with no rows' do
400
- search do
401
- facet(:foo) {}
402
- end
403
- connection.should_not have_last_search_with(:"facet.query")
404
- end
405
-
406
- it 'ignores facet query row with no restrictions' do
407
- search do
408
- facet :foo do
409
- row(:bar) do
410
- with(:blog_id, 1)
411
- end
412
- row(:baz) {}
413
- end
414
- end
415
- connection.searches.last[:"facet.query"].should be_a(String)
416
- end
417
-
418
- it 'tags and excludes a scope filter in a query facet' do
419
- search do
420
- blog_filter = with(:blog_id, 1)
421
- facet:foo, :exclude => blog_filter do
422
- row(:bar) do
423
- with(:category_ids, 1)
424
- end
425
- end
426
- end
427
- filter_tag = get_filter_tag('blog_id_i:1')
428
- connection.should have_last_search_with(
429
- :"facet.query" => "{!ex=#{filter_tag}}category_ids_im:1"
430
- )
431
- end
432
-
433
- it 'tags and excludes a disjunction filter in a query facet' do
434
- search do
435
- blog_filter = any_of do
436
- with(:blog_id, 1)
437
- with(:blog_id, 2)
438
- end
439
- facet:foo, :exclude => blog_filter do
440
- row(:bar) do
441
- with(:category_ids, 1)
442
- end
443
- end
444
- end
445
- filter_tag = get_filter_tag('(blog_id_i:1 OR blog_id_i:2)')
446
- connection.should have_last_search_with(
447
- :"facet.query" => "{!ex=#{filter_tag}}category_ids_im:1"
448
- )
449
- end
450
-
451
- it 'tags and excludes multiple filters in a query facet' do
452
- search do
453
- blog_filter = with(:blog_id, 1)
454
- category_filter = with(:category_ids, 2)
455
- facet:foo, :exclude => [blog_filter, category_filter] do
456
- row(:bar) do
457
- with(:category_ids, 1)
458
- end
459
- end
460
- end
461
- filter_tags = %w(blog_id_i:1 category_ids_im:2).map do |phrase|
462
- get_filter_tag(phrase)
463
- end.join(',')
464
- connection.should have_last_search_with(
465
- :"facet.query" => "{!ex=#{filter_tags}}category_ids_im:1"
466
- )
467
- end
468
-
469
-
470
- it 'ignores facet query with only empty rows' do
471
- search do
472
- facet :foo do
473
- row(:bar) {}
474
- end
475
- end
476
- connection.should_not have_last_search_with(:"facet.query")
477
- end
478
-
479
- it 'does not allow 0 arguments to facet method with block' do
480
- lambda do
481
- search do
482
- facet do
483
- end
484
- end
485
- end.should raise_error(ArgumentError)
486
- end
487
-
488
- it 'does not allow more than 1 argument to facet method with block' do
489
- lambda do
490
- search do
491
- facet :foo, :bar do
492
- end
493
- end
494
- end.should raise_error(ArgumentError)
495
- end
496
- end
497
- end