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,53 +0,0 @@
1
- module Sunspot
2
- # The Sunspot::Configuration module provides a factory method for Sunspot
3
- # configuration objects. Available properties are:
4
- #
5
- # Sunspot.config.solr.url::
6
- # The URL at which to connect to Solr
7
- # (default: 'http://localhost:8983/solr')
8
- # Sunspot.config.pagination.default_per_page::
9
- # Solr always paginates its results. This sets Sunspot's default result
10
- # count per page if it is not explicitly specified in the query.
11
- # Sunspot.config.indexing.default_batch_size::
12
- # This sets the batch size for indexing, default is 50
13
- #
14
- module Configuration
15
- class <<self
16
- # Factory method to build configuration instances.
17
- #
18
- # ==== Returns
19
- #
20
- # LightConfig::Configuration:: new configuration instance with defaults
21
- #
22
- def build #:nodoc:
23
- LightConfig.build do
24
- solr do
25
- url 'http://127.0.0.1:8983/solr'
26
- read_timeout nil
27
- open_timeout nil
28
- end
29
- master_solr do
30
- url nil
31
- end
32
- pagination do
33
- default_per_page 30
34
- end
35
- indexing do
36
- default_batch_size 50
37
- end
38
- end
39
- end
40
-
41
- # Location for the default solr configuration files,
42
- # required for bootstrapping a new solr installation
43
- #
44
- # ==== Returns
45
- #
46
- # String:: Directory with default solr config files
47
- #
48
- def solr_default_configuration_location
49
- File.join( File.dirname(__FILE__), '../../solr/solr/conf' )
50
- end
51
- end
52
- end
53
- end
@@ -1,50 +0,0 @@
1
- module Sunspot
2
- #
3
- # DataExtractors present an internal API for the indexer to use to extract
4
- # field values from models for indexing. They must implement the #value_for
5
- # method, which takes an object and returns the value extracted from it.
6
- #
7
- module DataExtractor #:nodoc: all
8
- #
9
- # AttributeExtractors extract data by simply calling a method on the block.
10
- #
11
- class AttributeExtractor
12
- def initialize(attribute_name)
13
- @attribute_name = attribute_name
14
- end
15
-
16
- def value_for(object)
17
- object.send(@attribute_name)
18
- end
19
- end
20
-
21
- #
22
- # BlockExtractors extract data by evaluating a block in the context of the
23
- # object instance, or if the block takes an argument, by passing the object
24
- # as the argument to the block. Either way, the return value of the block is
25
- # the value returned by the extractor.
26
- #
27
- class BlockExtractor
28
- def initialize(&block)
29
- @block = block
30
- end
31
-
32
- def value_for(object)
33
- Util.instance_eval_or_call(object, &@block)
34
- end
35
- end
36
-
37
- #
38
- # Constant data extractors simply return the same value for every object.
39
- #
40
- class Constant
41
- def initialize(value)
42
- @value = value
43
- end
44
-
45
- def value_for(object)
46
- @value
47
- end
48
- end
49
- end
50
- end
@@ -1,5 +0,0 @@
1
- %w(fields scope paginatable adjustable field_query standard_query query_facet
2
- functional fulltext restriction restriction_with_near search
3
- more_like_this_query function field_group).each do |file|
4
- require File.join(File.dirname(__FILE__), 'dsl', file)
5
- end
@@ -1,47 +0,0 @@
1
- module Sunspot
2
- module DSL #:nodoc:
3
- module Adjustable #:nodoc
4
- # <strong>Expert:</strong> Adjust or reset the parameters passed to Solr.
5
- # The adjustment will take place just before sending the params to solr,
6
- # after Sunspot builds the Solr params based on the methods called in the
7
- # DSL.
8
- #
9
- # Under normal circumstances, using this method should not be necessary;
10
- # if you find that it is, please consider submitting a feature request.
11
- # Using this method requires knowledge of Sunspot's internal Solr schema
12
- # and Solr query representations, which are not part of Sunspot's public
13
- # API; they could change at any time. <strong>This method is unsupported
14
- # and your mileage may vary.</strong>
15
- #
16
- # ==== Examples
17
- #
18
- # Sunspot.search(Post) do
19
- # adjust_solr_params do |params|
20
- # params[:q] += ' AND something_s:more'
21
- # end
22
- # end
23
- #
24
- # Sunspot.more_like_this(my_post) do
25
- # adjust_solr_params do |params|
26
- # params["mlt.match.include"] = true
27
- # end
28
- # end
29
- #
30
- def adjust_solr_params( &block )
31
- @query.solr_parameter_adjustment = block
32
- end
33
-
34
- #
35
- # <strong>Expert:</strong> Use a custom request handler for this search.
36
- # The general use case for this would be a request handler configuration
37
- # you've defined in solrconfig that has different search components,
38
- # defaults, etc. Using this to point at an entirely different type of
39
- # request handler that Sunspot doesn't support probably won't get you very
40
- # far.
41
- #
42
- def request_handler(request_handler)
43
- @search.request_handler = request_handler
44
- end
45
- end
46
- end
47
- end
@@ -1,57 +0,0 @@
1
- module Sunspot
2
- module DSL
3
- class FieldGroup
4
- def initialize(setup, group)
5
- @setup, @group = setup, group
6
- end
7
-
8
- #
9
- # Sets the number of results (documents) to return for each group.
10
- # Defaults to 1.
11
- #
12
- def limit(num)
13
- @group.limit = num
14
- end
15
-
16
- #
17
- # If set, facet counts are based on the most relevant document of
18
- # each group matching the query.
19
- #
20
- # Supported in Solr 3.4 and above.
21
- #
22
- # ==== Example
23
- #
24
- # Sunspot.search(Post) do
25
- # group :title do
26
- # truncate
27
- # end
28
- #
29
- # facet :title, :extra => :any
30
- # end
31
- #
32
- def truncate
33
- @group.truncate = true
34
- end
35
-
36
- # Specify the order that results should be returned in. This method can
37
- # be called multiple times; precedence will be in the order given.
38
- #
39
- # ==== Parameters
40
- #
41
- # field_name<Symbol>:: the field to use for ordering
42
- # direction<Symbol>:: :asc or :desc (default :asc)
43
- #
44
- def order_by(field_name, direction = nil)
45
- sort =
46
- if special = Sunspot::Query::Sort.special(field_name)
47
- special.new(direction)
48
- else
49
- Sunspot::Query::Sort::FieldSort.new(
50
- @setup.field(field_name), direction
51
- )
52
- end
53
- @group.add_sort(sort)
54
- end
55
- end
56
- end
57
- end
@@ -1,345 +0,0 @@
1
- module Sunspot
2
- module DSL
3
- #
4
- # Provides an API for areas of the query DSL that operate on specific
5
- # fields. This functionality is provided by the query DSL and the dynamic
6
- # query DSL.
7
- #
8
- class FieldQuery < Scope
9
- def initialize(search, query, setup) #:nodoc:
10
- @search, @query = search, query
11
- super(query.scope, setup)
12
- end
13
-
14
- # Specify the order that results should be returned in. This method can
15
- # be called multiple times; precedence will be in the order given.
16
- #
17
- # ==== Parameters
18
- #
19
- # field_name<Symbol>:: the field to use for ordering
20
- # direction<Symbol>:: :asc or :desc (default :asc)
21
- #
22
- def order_by(field_name, direction = nil)
23
- sort =
24
- if special = Sunspot::Query::Sort.special(field_name)
25
- special.new(direction)
26
- else
27
- Sunspot::Query::Sort::FieldSort.new(
28
- @setup.field(field_name), direction
29
- )
30
- end
31
- @query.add_sort(sort)
32
- end
33
-
34
- #
35
- # Specify that the results should be ordered based on their
36
- # distance from a given point.
37
- #
38
- # ==== Parameters
39
- #
40
- # field_name<Symbol>::
41
- # the field that stores the location (declared as `latlon`)
42
- # lat<Numeric>::
43
- # the reference latitude
44
- # lon<Numeric>::
45
- # the reference longitude
46
- # direction<Symbol>::
47
- # :asc or :desc (default :asc)
48
- #
49
- def order_by_geodist(field_name, lat, lon, direction = nil)
50
- @query.add_sort(
51
- Sunspot::Query::Sort::GeodistSort.new(@setup.field(field_name), lat, lon, direction)
52
- )
53
- end
54
-
55
- #
56
- # DEPRECATED Use <code>order_by(:random)</code>
57
- #
58
- def order_by_random
59
- order_by(:random)
60
- end
61
-
62
- # Specify a field for result grouping. Grouping groups documents
63
- # with a common field value, return only the top document per
64
- # group.
65
- #
66
- # More information in the Solr documentation:
67
- # <http://wiki.apache.org/solr/FieldCollapsing>
68
- #
69
- # ==== Parameters
70
- #
71
- # field_name<Symbol>:: the field to use for grouping
72
- def group(*field_names, &block)
73
- options = Sunspot::Util.extract_options_from(field_names)
74
-
75
- field_names.each do |field_name|
76
- field = @setup.field(field_name)
77
- group = @query.add_group(Sunspot::Query::FieldGroup.new(field))
78
- @search.add_field_group(field)
79
-
80
- if block
81
- Sunspot::Util.instance_eval_or_call(
82
- FieldGroup.new(@setup, group),
83
- &block
84
- )
85
- end
86
- end
87
- end
88
-
89
- #
90
- # Request a facet on the search query. A facet is a feature of Solr that
91
- # determines the number of documents that match the existing search *and*
92
- # an additional criterion. This allows you to build powerful drill-down
93
- # interfaces for search, at each step presenting the searcher with a set
94
- # of refinements that are known to return results.
95
- #
96
- # In Sunspot, each facet returns zero or more rows, each of which
97
- # represents a particular criterion conjoined with the actual query being
98
- # performed. For _field_ _facets_, each row represents a particular value
99
- # for a given field. For _query_ _facets_, each row represents an
100
- # arbitrary scope; the facet itself is just a means of logically grouping
101
- # the scopes.
102
- #
103
- # === Examples
104
- #
105
- # ==== Field Facets
106
- #
107
- # A field facet is specified by passing one or more Symbol arguments to
108
- # this method:
109
- #
110
- # Sunspot.search(Post) do
111
- # with(:blog_id, 1)
112
- # facet(:category_id)
113
- # end
114
- #
115
- # The facet specified above will have a row for each category_id that is
116
- # present in a document which also has a blog_id of 1.
117
- #
118
- # ==== Multiselect Facets
119
- #
120
- # In certain circumstances, it is beneficial to exclude certain query
121
- # scopes from a facet; the most common example is multi-select faceting,
122
- # where the user has selected a certain value, but the facet should still
123
- # show all options that would be available if they had not:
124
- #
125
- # Sunspot.search(Post) do
126
- # with(:blog_id, 1)
127
- # category_filter = with(:category_id, 2)
128
- # facet(:category_id, :exclude => category_filter)
129
- # end
130
- #
131
- # Although the results of the above search will be restricted to those
132
- # with a category_id of 2, the category_id facet will operate as if a
133
- # category had not been selected, allowing the user to select additional
134
- # categories (which will presumably be ORed together).
135
- #
136
- # It possible to exclude multiple filters by passing an array:
137
- #
138
- # Sunspot.search(Post) do
139
- # with(:blog_id, 1)
140
- # category_filter = with(:category_id, 2)
141
- # author_filter = with(:author_id, 3)
142
- # facet(:category_id,
143
- # :exclude => [category_filter, author_filter].compact)
144
- # end
145
- #
146
- # You should consider using +.compact+ to ensure that the array does not
147
- # contain any nil values.
148
- #
149
- # <strong>As far as I can tell, Solr only supports multi-select with
150
- # field facets; if +:exclude+ is passed to a query facet, this method will
151
- # raise an error. Also, the +:only+ and +:extra+ options use query
152
- # faceting under the hood, so these can't be used with +:extra+ either.
153
- # </strong>
154
- #
155
- # ==== Query Facets
156
- #
157
- # A query facet is a collection of arbitrary scopes, each of which
158
- # represents a row. This is specified by passing a block into the #facet
159
- # method; the block then contains one or more +row+ blocks, each of which
160
- # creates a query facet row. The +row+ blocks follow the usual Sunspot
161
- # scope DSL.
162
- #
163
- # For example, a query facet can be used to facet over a set of ranges:
164
- #
165
- # Sunspot.search(Post) do
166
- # facet(:average_rating) do
167
- # row(1.0..2.0) do
168
- # with(:average_rating, 1.0..2.0)
169
- # end
170
- # row(2.0..3.0) do
171
- # with(:average_rating, 2.0..3.0)
172
- # end
173
- # row(3.0..4.0) do
174
- # with(:average_rating, 3.0..4.0)
175
- # end
176
- # row(4.0..5.0) do
177
- # with(:average_rating, 4.0..5.0)
178
- # end
179
- # end
180
- # end
181
- #
182
- # Note that the arguments to the +facet+ and +row+ methods simply provide
183
- # labels for the facet and its rows, so that they can be retrieved and
184
- # identified from the Search object. They are not passed to Solr and no
185
- # semantic meaning is attached to them. The label for +facet+ should be
186
- # a symbol; the label for +row+ can be whatever you'd like.
187
- #
188
- # ==== Range Facets
189
- #
190
- # One can use the Range Faceting feature on any date field or any numeric
191
- # field that supports range queries. This is particularly useful for the
192
- # cases in the past where one might stitch together a series of range
193
- # queries (as facet by query) for things like prices, etc.
194
- #
195
- # For example faceting over average ratings can be done as follows:
196
- #
197
- # Sunspot.search(Post) do
198
- # facet :average_rating, :range => 1..5, :range_interval => 1
199
- # end
200
- #
201
- # ==== Parameters
202
- #
203
- # field_names...<Symbol>:: fields for which to return field facets
204
- #
205
- # ==== Options
206
- #
207
- # :sort<Symbol>::
208
- # Either :count (values matching the most terms first) or :index (lexical)
209
- # :limit<Integer>::
210
- # The maximum number of facet rows to return
211
- # :offset<Integer>::
212
- # The offset from which to start returning facet rows
213
- # :minimum_count<Integer>::
214
- # The minimum count a facet row must have to be returned
215
- # :zeros<Boolean>::
216
- # Return facet rows for which there are no matches (equivalent to
217
- # :minimum_count => 0). Default is false.
218
- # :exclude<Object,Array>::
219
- # Exclude one or more filters when performing the faceting (see
220
- # Multiselect Faceting above). The object given for this argument should
221
- # be the return value(s) of a scoping method (+with+, +any_of+,
222
- # +all_of+, etc.). <strong>Only can be used for field facets that do not
223
- # use the +:extra+ or +:only+ options.</strong>
224
- # :name<Symbol>::
225
- # Give a custom name to a field facet. The main use case for this option
226
- # is for requesting the same field facet multiple times, using different
227
- # filter exclusions (see Multiselect Faceting above). If you pass this
228
- # option, it is also the argument that should be passed to Search#facet
229
- # when retrieving the facet result.
230
- # :only<Array>::
231
- # Only return facet rows for the given values. Useful if you are only
232
- # interested in faceting on a subset of values for a given field.
233
- # <strong>Only applies to field facets.</strong>
234
- # :extra<Symbol,Array>::
235
- # One or more of :any and :none. :any returns a facet row with a count
236
- # of all matching documents that have some value for this field. :none
237
- # returns a facet row with a count of all matching documents that have
238
- # no value for this field. The facet row(s) corresponding to the extras
239
- # have a value of the symbol passed. <strong>Only applies to field
240
- # facets.</strong>
241
- #
242
- def facet(*field_names, &block)
243
- options = Sunspot::Util.extract_options_from(field_names)
244
-
245
- if block
246
- if field_names.length != 1
247
- raise(
248
- ArgumentError,
249
- "wrong number of arguments (#{field_names.length} for 1)"
250
- )
251
- end
252
- search_facet = @search.add_query_facet(field_names.first, options)
253
- Sunspot::Util.instance_eval_or_call(
254
- QueryFacet.new(@query, @setup, search_facet, options),
255
- &block
256
- )
257
- elsif options[:only]
258
- if options.has_key?(:exclude)
259
- raise(
260
- ArgumentError,
261
- "can't use :exclude with :only (see documentation)"
262
- )
263
- end
264
- field_names.each do |field_name|
265
- field = @setup.field(field_name)
266
- search_facet = @search.add_field_facet(field, options)
267
- Util.Array(options[:only]).each do |value|
268
- facet = Sunspot::Query::QueryFacet.new
269
- facet.add_positive_restriction(field, Sunspot::Query::Restriction::EqualTo, value)
270
- @query.add_query_facet(facet)
271
- search_facet.add_row(value, facet.to_boolean_phrase)
272
- end
273
- end
274
- else
275
- field_names.each do |field_name|
276
- search_facet = nil
277
- field = @setup.field(field_name)
278
- facet =
279
- if options[:time_range]
280
- unless field.type.is_a?(Sunspot::Type::TimeType)
281
- raise(
282
- ArgumentError,
283
- ':time_range can only be specified for Date or Time fields'
284
- )
285
- end
286
- search_facet = @search.add_date_facet(field, options)
287
- Sunspot::Query::DateFieldFacet.new(field, options)
288
- elsif options[:range]
289
- unless [Sunspot::Type::TimeType, Sunspot::Type::FloatType, Sunspot::Type::IntegerType ].inject(false){|res,type| res || field.type.is_a?(type)}
290
- raise(
291
- ArgumentError,
292
- ':range can only be specified for date or numeric fields'
293
- )
294
- end
295
- search_facet = @search.add_range_facet(field, options)
296
- Sunspot::Query::RangeFacet.new(field, options)
297
- else
298
- search_facet = @search.add_field_facet(field, options)
299
- Sunspot::Query::FieldFacet.new(field, options)
300
- end
301
- @query.add_field_facet(facet)
302
- Util.Array(options[:extra]).each do |extra|
303
- if options.has_key?(:exclude)
304
- raise(
305
- ArgumentError,
306
- "can't use :exclude with :extra (see documentation)"
307
- )
308
- end
309
- extra_facet = Sunspot::Query::QueryFacet.new
310
- case extra
311
- when :any
312
- extra_facet.add_negated_restriction(
313
- field,
314
- Sunspot::Query::Restriction::EqualTo,
315
- nil
316
- )
317
- when :none
318
- extra_facet.add_positive_restriction(
319
- field,
320
- Sunspot::Query::Restriction::EqualTo,
321
- nil
322
- )
323
- else
324
- raise(
325
- ArgumentError,
326
- "Allowed values for :extra are :any and :none"
327
- )
328
- end
329
- search_facet.add_row(extra, extra_facet.to_boolean_phrase)
330
- @query.add_query_facet(extra_facet)
331
- end
332
- end
333
- end
334
- end
335
-
336
- def dynamic(base_name, &block)
337
- dynamic_field_factory = @setup.dynamic_field_factory(base_name)
338
- Sunspot::Util.instance_eval_or_call(
339
- FieldQuery.new(@search, @query, dynamic_field_factory),
340
- &block
341
- )
342
- end
343
- end
344
- end
345
- end