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,14 +0,0 @@
1
- module Sunspot
2
- module Query
3
- class DateFieldFacet < AbstractFieldFacet
4
- def to_params
5
- params = super
6
- params[:"facet.date"] = [@field.indexed_name]
7
- params[qualified_param('date.start')] = @field.to_indexed(@options[:time_range].first)
8
- params[qualified_param('date.end')] = @field.to_indexed(@options[:time_range].last)
9
- params[qualified_param('date.gap')] = "+#{@options[:time_interval] || 86400}SECONDS"
10
- params
11
- end
12
- end
13
- end
14
- end
@@ -1,132 +0,0 @@
1
- module Sunspot
2
- module Query
3
-
4
- #
5
- # Solr full-text queries use Solr's DisMaxRequestHandler, a search handler
6
- # designed to process user-entered phrases, and search for individual
7
- # words across a union of several fields.
8
- #
9
- class Dismax
10
- attr_writer :minimum_match, :phrase_slop, :query_phrase_slop, :tie
11
-
12
- def initialize(keywords)
13
- @keywords = keywords
14
- @fulltext_fields = {}
15
- @boost_queries = []
16
- @boost_functions = []
17
- @highlights = []
18
- end
19
-
20
- #
21
- # The query as Solr parameters
22
- #
23
- def to_params
24
- params = { :q => @keywords }
25
- params[:fl] = '* score'
26
- params[:qf] = @fulltext_fields.values.map { |field| field.to_boosted_field }.join(' ')
27
- params[:defType] = 'dismax'
28
- if @phrase_fields
29
- params[:pf] = @phrase_fields.map { |field| field.to_boosted_field }.join(' ')
30
- end
31
- unless @boost_queries.empty?
32
- params[:bq] = @boost_queries.map do |boost_query|
33
- boost_query.to_boolean_phrase
34
- end
35
- end
36
- unless @boost_functions.empty?
37
- params[:bf] = @boost_functions.map do |boost_function|
38
- boost_function.to_s
39
- end
40
- end
41
- if @minimum_match
42
- params[:mm] = @minimum_match
43
- end
44
- if @phrase_slop
45
- params[:ps] = @phrase_slop
46
- end
47
- if @query_phrase_slop
48
- params[:qs] = @query_phrase_slop
49
- end
50
- if @tie
51
- params[:tie] = @tie
52
- end
53
- @highlights.each do |highlight|
54
- Sunspot::Util.deep_merge!(params, highlight.to_params)
55
- end
56
- params
57
- end
58
-
59
- #
60
- # Serialize the query as a Solr nested subquery.
61
- #
62
- def to_subquery
63
- params = self.to_params
64
- params.delete :defType
65
- params.delete :fl
66
- keywords = params.delete(:q)
67
- options = params.map { |key, value| escape_param(key, value) }.join(' ')
68
- "_query_:\"{!dismax #{options}}#{escape_quotes(keywords)}\""
69
- end
70
-
71
- #
72
- # Assign a new boost query and return it.
73
- #
74
- def create_boost_query(factor)
75
- @boost_queries << boost_query = BoostQuery.new(factor)
76
- boost_query
77
- end
78
-
79
- #
80
- # Add a boost function
81
- #
82
- def add_boost_function(function_query)
83
- @boost_functions << function_query
84
- end
85
-
86
- #
87
- # Add a fulltext field to be searched, with optional boost.
88
- #
89
- def add_fulltext_field(field, boost = nil)
90
- @fulltext_fields[field.indexed_name] = TextFieldBoost.new(field, boost)
91
- end
92
-
93
- #
94
- # Add a phrase field for extra boost.
95
- #
96
- def add_phrase_field(field, boost = nil)
97
- @phrase_fields ||= []
98
- @phrase_fields << TextFieldBoost.new(field, boost)
99
- end
100
-
101
- #
102
- # Set highlighting options for the query. If fields is empty, the
103
- # Highlighting object won't pass field names at all, which means
104
- # the dismax's :qf parameter will be used by Solr.
105
- #
106
- def add_highlight(fields=[], options={})
107
- @highlights << Highlighting.new(fields, options)
108
- end
109
-
110
- #
111
- # Determine if a given field is being searched. Used by DSL to avoid
112
- # overwriting boost parameters when injecting defaults.
113
- #
114
- def has_fulltext_field?(field)
115
- @fulltext_fields.has_key?(field.indexed_name)
116
- end
117
-
118
-
119
- private
120
-
121
- def escape_param(key, value)
122
- "#{key}='#{escape_quotes(Array(value).join(" "))}'"
123
- end
124
-
125
- def escape_quotes(value)
126
- return value unless value.is_a? String
127
- value.gsub(/(['"])/, '\\\\\1')
128
- end
129
-
130
- end
131
- end
132
- end
@@ -1,41 +0,0 @@
1
- module Sunspot
2
- module Query
3
- class FieldFacet < AbstractFieldFacet
4
- def initialize(field, options)
5
- if exclude_filters = options[:exclude]
6
- @exclude_tag = Util.Array(exclude_filters).map do |filter|
7
- filter.tag
8
- end.join(',')
9
- end
10
- super
11
- end
12
-
13
- def to_params
14
- super.merge(:"facet.field" => [field_name_with_local_params])
15
- end
16
-
17
- private
18
-
19
- def local_params
20
- @local_params ||=
21
- begin
22
- local_params = {}
23
- local_params[:ex] = @exclude_tag if @exclude_tag
24
- local_params[:key] = @options[:name] if @options[:name]
25
- local_params
26
- end
27
- end
28
-
29
- def field_name_with_local_params
30
- if local_params.empty?
31
- @field.indexed_name
32
- else
33
- pairs = local_params.map do |key, value|
34
- "#{key}=#{value}"
35
- end
36
- "{!#{pairs.join(' ')}}#{@field.indexed_name}"
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,37 +0,0 @@
1
- module Sunspot
2
- module Query
3
- #
4
- # A FieldGroup groups by the unique values of a given field.
5
- #
6
- class FieldGroup
7
- attr_accessor :limit, :truncate
8
-
9
- def initialize(field)
10
- if field.multiple?
11
- raise(ArgumentError, "#{field.name} cannot be used for grouping because it is a multiple-value field")
12
- end
13
- @field = field
14
-
15
- @sort = SortComposite.new
16
- end
17
-
18
- def add_sort(sort)
19
- @sort << sort
20
- end
21
-
22
- def to_params
23
- params = {
24
- :group => "true",
25
- :"group.ngroups" => "true",
26
- :"group.field" => @field.indexed_name
27
- }
28
-
29
- params.merge!(@sort.to_params("group."))
30
- params[:"group.limit"] = @limit if @limit
31
- params[:"group.truncate"] = @truncate if @truncate
32
-
33
- params
34
- end
35
- end
36
- end
37
- end
@@ -1,38 +0,0 @@
1
- module Sunspot
2
- module Query
3
- module Filter
4
-
5
- #
6
- # Express this filter as an :fq parameter; i.e., the boolean phrase,
7
- # maybe prefixed by local params.
8
- #
9
- def to_filter_query
10
- if tagged? then "{!tag=#{tag}}#{to_boolean_phrase}"
11
- else to_boolean_phrase
12
- end
13
- end
14
-
15
- #
16
- # Generate and return a tag that can be attached to this restriction,
17
- # for use with multiselect faceting. This needs to be unique, but doesn't
18
- # really need to be human-readable, so just generate a string based on the
19
- # hash of the boolean phrase.
20
- #
21
- def tag
22
- @tag ||= to_boolean_phrase.hash.abs.to_s(36)
23
- end
24
-
25
- private
26
-
27
- #
28
- # True if a tag has been generated for this filter (e.g., if it's been
29
- # excluded from a given facet). If a tag has not been generated at the
30
- # time that the filter query param is requested, then it is not necessary
31
- # to include a tag in the local params.
32
- #
33
- def tagged?
34
- !!@tag
35
- end
36
- end
37
- end
38
- end
@@ -1,52 +0,0 @@
1
- module Sunspot
2
- module Query
3
- #
4
- # Abstract class for function queries.
5
- #
6
- class FunctionQuery
7
- include RSolr::Char
8
- end
9
-
10
- #
11
- # Function query which represents a constant.
12
- #
13
- class ConstantFunctionQuery < FunctionQuery
14
- def initialize(constant)
15
- @constant = constant
16
- end
17
-
18
- def to_s
19
- Type.to_literal(@constant)
20
- end
21
- end
22
-
23
- #
24
- # Function query which represents a field.
25
- #
26
- class FieldFunctionQuery < FunctionQuery
27
- def initialize(field)
28
- @field = field
29
- end
30
-
31
- def to_s
32
- "#{escape(@field.indexed_name)}"
33
- end
34
- end
35
-
36
- #
37
- # Function query which represents an actual function invocation.
38
- # Takes a function name and arguments as parameters.
39
- # Arguments are in turn FunctionQuery objects.
40
- #
41
- class FunctionalFunctionQuery < FunctionQuery
42
- def initialize(function_name, function_args)
43
- @function_name, @function_args = function_name, function_args
44
- end
45
-
46
- def to_s
47
- params = @function_args.map { |arg| arg.to_s }.join(",")
48
- "#{@function_name}(#{params})"
49
- end
50
- end
51
- end
52
- end
@@ -1,53 +0,0 @@
1
- begin
2
- require 'geohash'
3
- rescue LoadError => e
4
- require 'pr_geohash'
5
- end
6
-
7
- module Sunspot
8
- module Query
9
- class Geo
10
- MAX_PRECISION = 12
11
- DEFAULT_PRECISION = 7
12
- DEFAULT_PRECISION_FACTOR = 16.0
13
-
14
- def initialize(field, lat, lng, options)
15
- @field, @options = field, options
16
- @geohash = GeoHash.encode(lat.to_f, lng.to_f, MAX_PRECISION)
17
- end
18
-
19
- def to_params
20
- { :q => to_boolean_query }
21
- end
22
-
23
- def to_subquery
24
- "(#{to_boolean_query})"
25
- end
26
-
27
- private
28
-
29
- def to_boolean_query
30
- queries = []
31
- MAX_PRECISION.downto(precision) do |i|
32
- star = i == MAX_PRECISION ? '' : '*'
33
- precision_boost = Util.format_float(
34
- boost * precision_factor ** (i-MAX_PRECISION).to_f, 3)
35
- queries << "#{@field.indexed_name}:#{@geohash[0, i]}#{star}^#{precision_boost}"
36
- end
37
- queries.join(' OR ')
38
- end
39
-
40
- def precision
41
- @options[:precision] || DEFAULT_PRECISION
42
- end
43
-
44
- def precision_factor
45
- @options[:precision_factor] || DEFAULT_PRECISION_FACTOR
46
- end
47
-
48
- def boost
49
- @options[:boost] || 1.0
50
- end
51
- end
52
- end
53
- end
@@ -1,16 +0,0 @@
1
- module Sunspot
2
- module Query
3
- class Geofilt
4
- def initialize(field, lat, lon, radius, options = {})
5
- @field, @lat, @lon, @radius, @options = field, lat, lon, radius, options
6
- end
7
-
8
- def to_params
9
- func = @options[:bbox] ? "bbox" : "geofilt"
10
-
11
- filter = "{!#{func} sfield=#{@field.indexed_name} pt=#{@lat},#{@lon} d=#{@radius}}"
12
- {:fq => filter}
13
- end
14
- end
15
- end
16
- end
@@ -1,62 +0,0 @@
1
- module Sunspot
2
- module Query
3
- #
4
- # A query component that builds parameters for requesting highlights
5
- #
6
- class Highlighting #:nodoc:
7
- def initialize(fields=[], options={})
8
- @fields = fields
9
- @options = options
10
- end
11
-
12
- #
13
- # Return Solr highlighting params
14
- #
15
- def to_params
16
- params = {
17
- :hl => 'on',
18
- :"hl.simple.pre" => '@@@hl@@@',
19
- :"hl.simple.post" => '@@@endhl@@@'
20
- }
21
- unless @fields.empty?
22
- params[:"hl.fl"] = @fields.map { |field| field.indexed_name }
23
- end
24
- if max_snippets = @options[:max_snippets]
25
- params.merge!(make_params('snippets', max_snippets))
26
- end
27
- if fragment_size = @options[:fragment_size]
28
- params.merge!(make_params('fragsize', fragment_size))
29
- end
30
- if @options[:merge_contiguous_fragments]
31
- params.merge!(make_params('mergeContiguous', 'true'))
32
- end
33
- if @options[:phrase_highlighter]
34
- params.merge!(make_params('usePhraseHighlighter', 'true'))
35
- if @options[:require_field_match]
36
- params.merge!(make_params('requireFieldMatch', 'true'))
37
- end
38
- end
39
- if formatter = @options[:formatter]
40
- params.merge!(make_params('formatter', formatter))
41
- end
42
- if fragmenter = @options[:fragmenter]
43
- params.merge!(make_params('fragmenter', fragmenter))
44
- end
45
-
46
- params
47
- end
48
-
49
- private
50
-
51
- def make_params(name, value)
52
- if @fields.empty?
53
- { :"hl.#{name}" => value }
54
- else
55
- @fields.inject({}) do |hash, field|
56
- hash.merge!(:"f.#{field.indexed_name}.hl.#{name}" => value)
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end