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,313 +0,0 @@
1
- shared_examples_for 'fulltext query' do
2
- it 'searches by keywords' do
3
- search do
4
- keywords 'keyword search'
5
- end
6
- connection.should have_last_search_with(:q => 'keyword search')
7
- end
8
-
9
- it 'ignores keywords if empty' do
10
- search do
11
- keywords ''
12
- end
13
- connection.should_not have_last_search_with(:defType => 'dismax')
14
- end
15
-
16
- it 'ignores keywords if nil' do
17
- search do
18
- keywords nil
19
- end
20
- connection.should_not have_last_search_with(:defType => 'dismax')
21
- end
22
-
23
- it 'ignores keywords with only whitespace' do
24
- search do
25
- keywords " \t"
26
- end
27
- connection.should_not have_last_search_with(:defType => 'dismax')
28
- end
29
-
30
- it 'gracefully ignores keywords block if keywords ignored' do
31
- search do
32
- keywords(nil) { fields(:title) }
33
- end
34
- end
35
-
36
- it 'sets default query parser to dismax when keywords used' do
37
- search do
38
- keywords 'keyword search'
39
- end
40
- connection.should have_last_search_with(:defType => 'dismax')
41
- end
42
-
43
- it 'searches types in filter query if keywords used' do
44
- search do
45
- keywords 'keyword search'
46
- end
47
- connection.should have_last_search_with(:fq => ['type:Post'])
48
- end
49
-
50
- describe 'with multiple keyword components' do
51
- before :each do
52
- session.search Post do
53
- keywords 'first search', :fields => :title
54
- keywords 'second search'
55
- end
56
- end
57
-
58
- it 'puts specified keywords in subquery' do
59
- subqueries(:q).map { |subquery| subquery[:v] }.should ==
60
- ['first search', 'second search']
61
- end
62
-
63
- it 'puts specified dismax parameters in subquery' do
64
- subqueries(:q).first[:qf].should == 'title_text'
65
- end
66
-
67
- it 'puts default dismax parameters in subquery' do
68
- subqueries(:q).last[:qf].split(' ').sort.should == %w(backwards_title_text body_textsv tags_textv title_text)
69
- end
70
-
71
- it 'puts field list in main query' do
72
- connection.should have_last_search_with(:fl => '* score')
73
- end
74
- end
75
-
76
- it 'searches all text fields for searched class' do
77
- search = search do
78
- keywords 'keyword search'
79
- end
80
- connection.searches.last[:qf].split(' ').sort.should == %w(backwards_title_text body_textsv tags_textv title_text)
81
- end
82
-
83
- it 'searches both stored and unstored text fields' do
84
- search Post, Namespaced::Comment do
85
- keywords 'keyword search'
86
- end
87
- connection.searches.last[:qf].split(' ').sort.should == %w(author_name_text backwards_title_text body_text body_textsv tags_textv title_text)
88
- end
89
-
90
- it 'searches only specified text fields when specified' do
91
- search do
92
- keywords 'keyword search', :fields => [:title, :body]
93
- end
94
- connection.searches.last[:qf].split(' ').sort.should == %w(body_textsv title_text)
95
- end
96
-
97
- it 'excludes text fields when instructed' do
98
- search do
99
- keywords 'keyword search' do
100
- exclude_fields :backwards_title, :body_mlt
101
- end
102
- end
103
- connection.searches.last[:qf].split(' ').sort.should == %w(body_textsv tags_textv title_text)
104
- end
105
-
106
- it 'assigns boost to fields when specified' do
107
- search do
108
- keywords 'keyword search' do
109
- fields :title => 2.0, :body => 0.75
110
- end
111
- end
112
- connection.searches.last[:qf].split(' ').sort.should == %w(body_textsv^0.75 title_text^2.0)
113
- end
114
-
115
- it 'allows assignment of boosted and unboosted fields' do
116
- search do
117
- keywords 'keyword search' do
118
- fields :body, :title => 2.0
119
- end
120
- end
121
- end
122
-
123
- it 'searches both unstored and stored text field with same name when specified' do
124
- search Post, Namespaced::Comment do
125
- keywords 'keyword search', :fields => [:body]
126
- end
127
- connection.searches.last[:qf].split(' ').sort.should == %w(body_text body_textsv)
128
- end
129
-
130
- it 'requests score when keywords used' do
131
- search do
132
- keywords 'keyword search'
133
- end
134
- connection.should have_last_search_with(:fl => '* score')
135
- end
136
-
137
- it 'does not request score when keywords not used' do
138
- search Post
139
- connection.should_not have_last_search_with(:fl)
140
- end
141
-
142
- it 'sets phrase fields' do
143
- search do
144
- keywords 'great pizza' do
145
- phrase_fields :title => 2.0
146
- end
147
- end
148
- connection.should have_last_search_with(:pf => 'title_text^2.0')
149
- end
150
-
151
- it 'sets phrase fields with boost' do
152
- search do
153
- keywords 'great pizza' do
154
- phrase_fields :title => 1.5
155
- end
156
- end
157
- connection.should have_last_search_with(:pf => 'title_text^1.5')
158
- end
159
-
160
- it 'sets phrase slop from DSL' do
161
- search do
162
- keywords 'great pizza' do
163
- phrase_slop 2
164
- end
165
- end
166
- connection.should have_last_search_with(:ps => 2)
167
- end
168
-
169
- it 'sets boost for certain fields without restricting fields' do
170
- search do
171
- keywords 'great pizza' do
172
- boost_fields :title => 1.5
173
- end
174
- end
175
- connection.searches.last[:qf].split(' ').sort.should == %w(backwards_title_text body_textsv tags_textv title_text^1.5)
176
- end
177
-
178
- it 'ignores boost fields that do not apply' do
179
- search do
180
- keywords 'great pizza' do
181
- boost_fields :bogus => 1.2, :title => 1.5
182
- end
183
- end
184
- connection.searches.last[:qf].split(' ').sort.should == %w(backwards_title_text body_textsv tags_textv title_text^1.5)
185
- end
186
-
187
- it 'sets default boost with default fields' do
188
- search Photo do
189
- keywords 'great pizza'
190
- end
191
- connection.should have_last_search_with(:qf => 'caption_text^1.5')
192
- end
193
-
194
- it 'sets default boost with fields specified in options' do
195
- search Photo do
196
- keywords 'great pizza', :fields => [:caption]
197
- end
198
- connection.should have_last_search_with(:qf => 'caption_text^1.5')
199
- end
200
-
201
- it 'sets default boost with fields specified in DSL' do
202
- search Photo do
203
- keywords 'great pizza' do
204
- fields :caption
205
- end
206
- end
207
- connection.should have_last_search_with(:qf => 'caption_text^1.5')
208
- end
209
-
210
- it 'overrides default boost when specified in DSL' do
211
- search Photo do
212
- keywords 'great pizza' do
213
- fields :caption => 2.0
214
- end
215
- end
216
- connection.should have_last_search_with(:qf => 'caption_text^2.0')
217
- end
218
-
219
- it 'creates boost query' do
220
- search do
221
- keywords 'great pizza' do
222
- boost 2.0 do
223
- with(:average_rating).greater_than(2.0)
224
- end
225
- end
226
- end
227
- connection.should have_last_search_with(:bq => ['average_rating_ft:{2\.0 TO *}^2.0'])
228
- end
229
-
230
- it 'creates multiple boost queries' do
231
- search do
232
- keywords 'great pizza' do
233
- boost(2.0) do
234
- with(:average_rating).greater_than(2.0)
235
- end
236
- boost(1.5) do
237
- with(:featured, true)
238
- end
239
- end
240
- end
241
- connection.should have_last_search_with(
242
- :bq => [
243
- 'average_rating_ft:{2\.0 TO *}^2.0',
244
- 'featured_bs:true^1.5'
245
- ]
246
- )
247
- end
248
-
249
- it 'sends minimum match parameter from options' do
250
- search do
251
- keywords 'great pizza', :minimum_match => 2
252
- end
253
- connection.should have_last_search_with(:mm => 2)
254
- end
255
-
256
- it 'sends minimum match parameter from DSL' do
257
- search do
258
- keywords('great pizza') { minimum_match(2) }
259
- end
260
- connection.should have_last_search_with(:mm => 2)
261
- end
262
-
263
- it 'sends tiebreaker parameter from options' do
264
- search do
265
- keywords 'great pizza', :tie => 0.1
266
- end
267
- connection.should have_last_search_with(:tie => 0.1)
268
- end
269
-
270
- it 'sends tiebreaker parameter from DSL' do
271
- search do
272
- keywords('great pizza') { tie(0.1) }
273
- end
274
- connection.should have_last_search_with(:tie => 0.1)
275
- end
276
-
277
- it 'sends query phrase slop from options' do
278
- search do
279
- keywords 'great pizza', :query_phrase_slop => 2
280
- end
281
- connection.should have_last_search_with(:qs => 2)
282
- end
283
-
284
- it 'sends query phrase slop from DSL' do
285
- search do
286
- keywords('great pizza') { query_phrase_slop(2) }
287
- end
288
- connection.should have_last_search_with(:qs => 2)
289
- end
290
-
291
- it 'allows specification of a text field that only exists in one type' do
292
- search Post, Namespaced::Comment do
293
- keywords 'keywords', :fields => :author_name
294
- end
295
- connection.searches.last[:qf].should == 'author_name_text'
296
- end
297
-
298
- it 'raises Sunspot::UnrecognizedFieldError for nonexistant fields in keywords' do
299
- lambda do
300
- search do
301
- keywords :text, :fields => :bogus
302
- end
303
- end.should raise_error(Sunspot::UnrecognizedFieldError)
304
- end
305
-
306
- it 'raises Sunspot::UnrecognizedFieldError if a text field that does not exist for any type is specified' do
307
- lambda do
308
- search Post, Namespaced::Comment do
309
- keywords 'fulltext', :fields => :bogus
310
- end
311
- end.should raise_error(Sunspot::UnrecognizedFieldError)
312
- end
313
- end
@@ -1,79 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
-
3
- describe 'function query' do
4
- it "should send query to solr with boost function" do
5
- session.search Post do
6
- keywords('pizza') do
7
- boost(function { :average_rating })
8
- end
9
- end
10
- connection.should have_last_search_including(:bf, 'average_rating_ft')
11
- end
12
-
13
- it "should handle boost function with constant float" do
14
- session.search Post do
15
- keywords('pizza') do
16
- boost(function { 10.5 })
17
- end
18
- end
19
- connection.should have_last_search_including(:bf, '10.5')
20
- end
21
-
22
- it "should handle boost function with time literal" do
23
- session.search Post do
24
- keywords('pizza') do
25
- boost(function { Time.parse('2010-03-25 14:13:00 EDT') })
26
- end
27
- end
28
- connection.should have_last_search_including(:bf, '2010-03-25T18:13:00Z')
29
- end
30
-
31
- it "should handle arbitrary functions in a function query block" do
32
- session.search Post do
33
- keywords('pizza') do
34
- boost(function { product(:average_rating, 10) })
35
- end
36
- end
37
- connection.should have_last_search_including(:bf, 'product(average_rating_ft,10)')
38
- end
39
-
40
- it "should handle the sub function in a function query block" do
41
- session.search Post do
42
- keywords('pizza') do
43
- boost(function { sub(:average_rating, 10) })
44
- end
45
- end
46
- connection.should have_last_search_including(:bf, 'sub(average_rating_ft,10)')
47
- end
48
-
49
- it "should handle nested functions in a function query block" do
50
- session.search Post do
51
- keywords('pizza') do
52
- boost(function { product(:average_rating, sum(:average_rating, 20)) })
53
- end
54
- end
55
- connection.should have_last_search_including(:bf, 'product(average_rating_ft,sum(average_rating_ft,20))')
56
- end
57
-
58
- # TODO SOLR 1.5
59
- it "should raise ArgumentError if string literal passed" do
60
- lambda do
61
- session.search Post do
62
- keywords('pizza') do
63
- boost(function { "hello world" })
64
- end
65
- end
66
- end.should raise_error(ArgumentError)
67
- end
68
-
69
- it "should raise UnrecognizedFieldError if bogus field name passed" do
70
- lambda do
71
- session.search Post do
72
- keywords('pizza') do
73
- boost(function { :bogus })
74
- end
75
- end
76
- end.should raise_error(Sunspot::UnrecognizedFieldError)
77
- end
78
- end
79
-
@@ -1,68 +0,0 @@
1
- require 'bigdecimal'
2
-
3
- shared_examples_for 'geohash query' do
4
- it 'searches for nearby points with defaults' do
5
- search do
6
- with(:coordinates).near(40.7, -73.5)
7
- end
8
- connection.should have_last_search_including(:q, build_geo_query)
9
- end
10
-
11
- it 'searches for nearby points with non-Float arguments' do
12
- search do
13
- with(:coordinates).near(BigDecimal.new('40.7'), BigDecimal.new('-73.5'))
14
- end
15
- connection.should have_last_search_including(:q, build_geo_query)
16
- end
17
-
18
- it 'searches for nearby points with given precision' do
19
- search do
20
- with(:coordinates).near(40.7, -73.5, :precision => 10)
21
- end
22
- connection.should have_last_search_including(:q, build_geo_query(:precision => 10))
23
- end
24
-
25
- it 'searches for nearby points with given precision factor' do
26
- search do
27
- with(:coordinates).near(40.7, -73.5, :precision_factor => 1.5)
28
- end
29
- connection.should have_last_search_including(:q, build_geo_query(:precision_factor => 1.5))
30
- end
31
-
32
- it 'searches for nearby points with given boost' do
33
- search do
34
- with(:coordinates).near(40.7, -73.5, :boost => 2.0)
35
- end
36
- connection.should have_last_search_including(:q, build_geo_query(:boost => 2.0))
37
- end
38
-
39
- it 'performs both dismax search and location search' do
40
- search do
41
- fulltext 'pizza', :fields => :title
42
- with(:coordinates).near(40.7, -73.5)
43
- end
44
- expected =
45
- "{!dismax fl='* score' qf='title_text'}pizza (#{build_geo_query})"
46
- connection.should have_last_search_including(
47
- :q,
48
- %Q(_query_:"{!dismax qf='title_text'}pizza" (#{build_geo_query}))
49
- )
50
- end
51
-
52
- private
53
-
54
- def build_geo_query(options = {})
55
- precision = options[:precision] || 7
56
- precision_factor = options[:precision_factor] || 16.0
57
- boost = options[:boost] || 1.0
58
- hash = 'dr5xx3nytvgs'
59
- (precision..12).map do |i|
60
- phrase =
61
- if i == 12 then hash
62
- else "#{hash[0, i]}*"
63
- end
64
- precision_boost = Sunspot::Util.format_float(boost*precision_factor**(i-12.0), 3)
65
- "coordinates_s:#{phrase}^#{precision_boost}"
66
- end.reverse.join(' OR ')
67
- end
68
- end