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.
- data/.gitignore +6 -10
- data/{sunspot_rails/.rspec → .rspec} +0 -0
- data/{sunspot_rails/History.txt → History.txt} +0 -0
- data/{sunspot/LICENSE → LICENSE} +0 -0
- data/{sunspot_rails/MIT-LICENSE → MIT-LICENSE} +0 -0
- data/{sunspot_rails/README.rdoc → README.rdoc} +0 -0
- data/Rakefile +12 -32
- data/{sunspot_rails/TODO → TODO} +0 -0
- data/{sunspot_rails/dev_tasks → dev_tasks}/rdoc.rake +0 -0
- data/{sunspot_rails/dev_tasks → dev_tasks}/release.rake +0 -0
- data/{sunspot_rails/dev_tasks → dev_tasks}/spec.rake +0 -0
- data/{sunspot/tasks → dev_tasks}/todo.rake +0 -0
- data/{sunspot_rails/gemfiles → gemfiles}/rails-2.3.14 +0 -0
- data/{sunspot_rails/gemfiles → gemfiles}/rails-3.0.15 +0 -0
- data/{sunspot_rails/gemfiles → gemfiles}/rails-3.1.6 +0 -0
- data/{sunspot_rails/gemfiles → gemfiles}/rails-3.2.6 +0 -0
- data/{sunspot_rails/generators → generators}/sunspot/sunspot_generator.rb +0 -0
- data/{sunspot_rails/generators → generators}/sunspot/templates/sunspot.yml +0 -0
- data/{sunspot_rails/install.rb → install.rb} +0 -0
- data/{sunspot_rails/lib → lib}/generators/sunspot_rails.rb +0 -0
- data/{sunspot_rails/lib → lib}/generators/sunspot_rails/install/install_generator.rb +0 -0
- data/{sunspot_rails/lib → lib}/generators/sunspot_rails/install/templates/config/sunspot.yml +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/adapters.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/configuration.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/init.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/log_subscriber.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/railtie.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/railties/controller_runtime.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/request_lifecycle.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/searchable.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/server.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/solr_instrumentation.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/solr_logging.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/spec_helper.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/stub_session_proxy.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot/rails/tasks.rb +0 -0
- data/{sunspot_rails/lib → lib}/sunspot_rails.rb +0 -0
- data/{sunspot_rails/spec → spec}/configuration_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/model_lifecycle_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/model_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/controllers/application_controller.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/controllers/posts_controller.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/author.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/blog.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/location.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/photo_post.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/post.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/post_with_auto.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/app/models/post_with_default_scope.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/config/boot.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/config/preinitializer.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/config/routes.rb +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/config/sunspot.yml +0 -0
- data/{sunspot_rails/spec → spec}/rails_template/db/schema.rb +0 -0
- data/{sunspot_rails/spec → spec}/request_lifecycle_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/schema.rb +0 -0
- data/{sunspot_rails/spec → spec}/searchable_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/server_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/session_spec.rb +0 -0
- data/{sunspot_rails/spec → spec}/shared_examples/indexed_after_save.rb +0 -0
- data/{sunspot_rails/spec → spec}/shared_examples/not_indexed_after_save.rb +0 -0
- data/{sunspot_rails/spec → spec}/spec_helper.rb +0 -0
- data/{sunspot_rails/spec → spec}/stub_session_proxy_spec.rb +0 -0
- data/{sunspot_rails/sunspot_rails.gemspec → sunspot_rails.gemspec} +0 -0
- metadata +102 -305
- data/.travis.yml +0 -35
- data/README.md +0 -863
- data/ci/travis.sh +0 -67
- data/sunspot/.gitignore +0 -13
- data/sunspot/Gemfile +0 -5
- data/sunspot/History.txt +0 -258
- data/sunspot/Rakefile +0 -13
- data/sunspot/TODO +0 -13
- data/sunspot/lib/light_config.rb +0 -40
- data/sunspot/lib/sunspot.rb +0 -579
- data/sunspot/lib/sunspot/adapters.rb +0 -349
- data/sunspot/lib/sunspot/batcher.rb +0 -62
- data/sunspot/lib/sunspot/class_set.rb +0 -23
- data/sunspot/lib/sunspot/composite_setup.rb +0 -202
- data/sunspot/lib/sunspot/configuration.rb +0 -53
- data/sunspot/lib/sunspot/data_extractor.rb +0 -50
- data/sunspot/lib/sunspot/dsl.rb +0 -5
- data/sunspot/lib/sunspot/dsl/adjustable.rb +0 -47
- data/sunspot/lib/sunspot/dsl/field_group.rb +0 -57
- data/sunspot/lib/sunspot/dsl/field_query.rb +0 -345
- data/sunspot/lib/sunspot/dsl/fields.rb +0 -103
- data/sunspot/lib/sunspot/dsl/fulltext.rb +0 -243
- data/sunspot/lib/sunspot/dsl/function.rb +0 -27
- data/sunspot/lib/sunspot/dsl/functional.rb +0 -44
- data/sunspot/lib/sunspot/dsl/more_like_this_query.rb +0 -56
- data/sunspot/lib/sunspot/dsl/paginatable.rb +0 -32
- data/sunspot/lib/sunspot/dsl/query_facet.rb +0 -36
- data/sunspot/lib/sunspot/dsl/restriction.rb +0 -25
- data/sunspot/lib/sunspot/dsl/restriction_with_near.rb +0 -160
- data/sunspot/lib/sunspot/dsl/scope.rb +0 -214
- data/sunspot/lib/sunspot/dsl/search.rb +0 -30
- data/sunspot/lib/sunspot/dsl/standard_query.rb +0 -122
- data/sunspot/lib/sunspot/field.rb +0 -193
- data/sunspot/lib/sunspot/field_factory.rb +0 -129
- data/sunspot/lib/sunspot/indexer.rb +0 -136
- data/sunspot/lib/sunspot/query.rb +0 -11
- data/sunspot/lib/sunspot/query/abstract_field_facet.rb +0 -55
- data/sunspot/lib/sunspot/query/bbox.rb +0 -15
- data/sunspot/lib/sunspot/query/boost_query.rb +0 -24
- data/sunspot/lib/sunspot/query/common_query.rb +0 -96
- data/sunspot/lib/sunspot/query/composite_fulltext.rb +0 -36
- data/sunspot/lib/sunspot/query/connective.rb +0 -206
- data/sunspot/lib/sunspot/query/date_field_facet.rb +0 -14
- data/sunspot/lib/sunspot/query/dismax.rb +0 -132
- data/sunspot/lib/sunspot/query/field_facet.rb +0 -41
- data/sunspot/lib/sunspot/query/field_group.rb +0 -37
- data/sunspot/lib/sunspot/query/filter.rb +0 -38
- data/sunspot/lib/sunspot/query/function_query.rb +0 -52
- data/sunspot/lib/sunspot/query/geo.rb +0 -53
- data/sunspot/lib/sunspot/query/geofilt.rb +0 -16
- data/sunspot/lib/sunspot/query/highlighting.rb +0 -62
- data/sunspot/lib/sunspot/query/more_like_this.rb +0 -61
- data/sunspot/lib/sunspot/query/more_like_this_query.rb +0 -12
- data/sunspot/lib/sunspot/query/pagination.rb +0 -42
- data/sunspot/lib/sunspot/query/query_facet.rb +0 -53
- data/sunspot/lib/sunspot/query/range_facet.rb +0 -15
- data/sunspot/lib/sunspot/query/restriction.rb +0 -308
- data/sunspot/lib/sunspot/query/scope.rb +0 -9
- data/sunspot/lib/sunspot/query/sort.rb +0 -109
- data/sunspot/lib/sunspot/query/sort_composite.rb +0 -34
- data/sunspot/lib/sunspot/query/standard_query.rb +0 -16
- data/sunspot/lib/sunspot/query/text_field_boost.rb +0 -17
- data/sunspot/lib/sunspot/schema.rb +0 -151
- data/sunspot/lib/sunspot/search.rb +0 -9
- data/sunspot/lib/sunspot/search/abstract_search.rb +0 -286
- data/sunspot/lib/sunspot/search/date_facet.rb +0 -35
- data/sunspot/lib/sunspot/search/facet_row.rb +0 -27
- data/sunspot/lib/sunspot/search/field_facet.rb +0 -88
- data/sunspot/lib/sunspot/search/field_group.rb +0 -70
- data/sunspot/lib/sunspot/search/group.rb +0 -54
- data/sunspot/lib/sunspot/search/highlight.rb +0 -38
- data/sunspot/lib/sunspot/search/hit.rb +0 -150
- data/sunspot/lib/sunspot/search/hit_enumerable.rb +0 -68
- data/sunspot/lib/sunspot/search/more_like_this_search.rb +0 -31
- data/sunspot/lib/sunspot/search/paginated_collection.rb +0 -57
- data/sunspot/lib/sunspot/search/query_facet.rb +0 -67
- data/sunspot/lib/sunspot/search/range_facet.rb +0 -37
- data/sunspot/lib/sunspot/search/standard_search.rb +0 -21
- data/sunspot/lib/sunspot/session.rb +0 -262
- data/sunspot/lib/sunspot/session_proxy.rb +0 -95
- data/sunspot/lib/sunspot/session_proxy/abstract_session_proxy.rb +0 -29
- data/sunspot/lib/sunspot/session_proxy/class_sharding_session_proxy.rb +0 -66
- data/sunspot/lib/sunspot/session_proxy/id_sharding_session_proxy.rb +0 -89
- data/sunspot/lib/sunspot/session_proxy/master_slave_session_proxy.rb +0 -43
- data/sunspot/lib/sunspot/session_proxy/retry_5xx_session_proxy.rb +0 -67
- data/sunspot/lib/sunspot/session_proxy/sharding_session_proxy.rb +0 -222
- data/sunspot/lib/sunspot/session_proxy/silent_fail_session_proxy.rb +0 -42
- data/sunspot/lib/sunspot/session_proxy/thread_local_session_proxy.rb +0 -37
- data/sunspot/lib/sunspot/setup.rb +0 -350
- data/sunspot/lib/sunspot/text_field_setup.rb +0 -29
- data/sunspot/lib/sunspot/type.rb +0 -393
- data/sunspot/lib/sunspot/util.rb +0 -252
- data/sunspot/lib/sunspot/version.rb +0 -3
- data/sunspot/script/console +0 -10
- data/sunspot/spec/api/adapters_spec.rb +0 -68
- data/sunspot/spec/api/batcher_spec.rb +0 -112
- data/sunspot/spec/api/binding_spec.rb +0 -50
- data/sunspot/spec/api/class_set_spec.rb +0 -24
- data/sunspot/spec/api/hit_enumerable_spec.rb +0 -47
- data/sunspot/spec/api/indexer/attributes_spec.rb +0 -149
- data/sunspot/spec/api/indexer/batch_spec.rb +0 -72
- data/sunspot/spec/api/indexer/dynamic_fields_spec.rb +0 -42
- data/sunspot/spec/api/indexer/fixed_fields_spec.rb +0 -57
- data/sunspot/spec/api/indexer/fulltext_spec.rb +0 -43
- data/sunspot/spec/api/indexer/removal_spec.rb +0 -53
- data/sunspot/spec/api/indexer/spec_helper.rb +0 -1
- data/sunspot/spec/api/indexer_spec.rb +0 -14
- data/sunspot/spec/api/query/advanced_manipulation_examples.rb +0 -35
- data/sunspot/spec/api/query/connectives_examples.rb +0 -201
- data/sunspot/spec/api/query/dsl_spec.rb +0 -18
- data/sunspot/spec/api/query/dynamic_fields_examples.rb +0 -165
- data/sunspot/spec/api/query/faceting_examples.rb +0 -497
- data/sunspot/spec/api/query/fulltext_examples.rb +0 -313
- data/sunspot/spec/api/query/function_spec.rb +0 -79
- data/sunspot/spec/api/query/geo_examples.rb +0 -68
- data/sunspot/spec/api/query/group_spec.rb +0 -32
- data/sunspot/spec/api/query/highlighting_examples.rb +0 -245
- data/sunspot/spec/api/query/more_like_this_spec.rb +0 -140
- data/sunspot/spec/api/query/ordering_pagination_examples.rb +0 -116
- data/sunspot/spec/api/query/scope_examples.rb +0 -275
- data/sunspot/spec/api/query/spatial_examples.rb +0 -27
- data/sunspot/spec/api/query/spec_helper.rb +0 -1
- data/sunspot/spec/api/query/standard_spec.rb +0 -29
- data/sunspot/spec/api/query/text_field_scoping_examples.rb +0 -30
- data/sunspot/spec/api/query/types_spec.rb +0 -20
- data/sunspot/spec/api/search/dynamic_fields_spec.rb +0 -33
- data/sunspot/spec/api/search/faceting_spec.rb +0 -360
- data/sunspot/spec/api/search/highlighting_spec.rb +0 -69
- data/sunspot/spec/api/search/hits_spec.rb +0 -147
- data/sunspot/spec/api/search/paginated_collection_spec.rb +0 -36
- data/sunspot/spec/api/search/results_spec.rb +0 -72
- data/sunspot/spec/api/search/search_spec.rb +0 -23
- data/sunspot/spec/api/search/spec_helper.rb +0 -1
- data/sunspot/spec/api/session_proxy/class_sharding_session_proxy_spec.rb +0 -85
- data/sunspot/spec/api/session_proxy/id_sharding_session_proxy_spec.rb +0 -30
- data/sunspot/spec/api/session_proxy/master_slave_session_proxy_spec.rb +0 -41
- data/sunspot/spec/api/session_proxy/retry_5xx_session_proxy_spec.rb +0 -78
- data/sunspot/spec/api/session_proxy/sharding_session_proxy_spec.rb +0 -77
- data/sunspot/spec/api/session_proxy/silent_fail_session_proxy_spec.rb +0 -24
- data/sunspot/spec/api/session_proxy/spec_helper.rb +0 -9
- data/sunspot/spec/api/session_proxy/thread_local_session_proxy_spec.rb +0 -39
- data/sunspot/spec/api/session_spec.rb +0 -232
- data/sunspot/spec/api/spec_helper.rb +0 -3
- data/sunspot/spec/api/sunspot_spec.rb +0 -29
- data/sunspot/spec/ext.rb +0 -11
- data/sunspot/spec/helpers/indexer_helper.rb +0 -17
- data/sunspot/spec/helpers/integration_helper.rb +0 -8
- data/sunspot/spec/helpers/mock_session_helper.rb +0 -13
- data/sunspot/spec/helpers/query_helper.rb +0 -26
- data/sunspot/spec/helpers/search_helper.rb +0 -68
- data/sunspot/spec/integration/dynamic_fields_spec.rb +0 -57
- data/sunspot/spec/integration/faceting_spec.rb +0 -330
- data/sunspot/spec/integration/field_grouping_spec.rb +0 -100
- data/sunspot/spec/integration/geospatial_spec.rb +0 -96
- data/sunspot/spec/integration/highlighting_spec.rb +0 -44
- data/sunspot/spec/integration/indexing_spec.rb +0 -55
- data/sunspot/spec/integration/keyword_search_spec.rb +0 -317
- data/sunspot/spec/integration/local_search_spec.rb +0 -64
- data/sunspot/spec/integration/more_like_this_spec.rb +0 -43
- data/sunspot/spec/integration/scoped_search_spec.rb +0 -386
- data/sunspot/spec/integration/stored_fields_spec.rb +0 -12
- data/sunspot/spec/integration/test_pagination.rb +0 -43
- data/sunspot/spec/integration/unicode_spec.rb +0 -15
- data/sunspot/spec/mocks/adapters.rb +0 -33
- data/sunspot/spec/mocks/blog.rb +0 -3
- data/sunspot/spec/mocks/comment.rb +0 -21
- data/sunspot/spec/mocks/connection.rb +0 -126
- data/sunspot/spec/mocks/mock_adapter.rb +0 -30
- data/sunspot/spec/mocks/mock_class_sharding_session_proxy.rb +0 -24
- data/sunspot/spec/mocks/mock_record.rb +0 -52
- data/sunspot/spec/mocks/mock_sharding_session_proxy.rb +0 -15
- data/sunspot/spec/mocks/photo.rb +0 -11
- data/sunspot/spec/mocks/post.rb +0 -86
- data/sunspot/spec/mocks/super_class.rb +0 -2
- data/sunspot/spec/mocks/user.rb +0 -13
- data/sunspot/spec/spec_helper.rb +0 -40
- data/sunspot/sunspot.gemspec +0 -37
- data/sunspot/tasks/rdoc.rake +0 -27
- data/sunspot/tasks/schema.rake +0 -19
- data/sunspot_rails/.gitignore +0 -7
- data/sunspot_rails/LICENSE +0 -18
- data/sunspot_rails/Rakefile +0 -17
- data/sunspot_rails/dev_tasks/todo.rake +0 -4
- data/sunspot_solr/Gemfile +0 -3
- data/sunspot_solr/README.rdoc +0 -24
- data/sunspot_solr/bin/sunspot-installer +0 -20
- data/sunspot_solr/bin/sunspot-solr +0 -80
- data/sunspot_solr/lib/sunspot/solr/installer.rb +0 -25
- data/sunspot_solr/lib/sunspot/solr/installer/config_installer.rb +0 -46
- data/sunspot_solr/lib/sunspot/solr/installer/task_helper.rb +0 -13
- data/sunspot_solr/lib/sunspot/solr/java.rb +0 -10
- data/sunspot_solr/lib/sunspot/solr/railtie.rb +0 -15
- data/sunspot_solr/lib/sunspot/solr/server.rb +0 -223
- data/sunspot_solr/lib/sunspot/solr/tasks.rb +0 -49
- data/sunspot_solr/lib/sunspot_solr.rb +0 -5
- data/sunspot_solr/solr/README.txt +0 -42
- data/sunspot_solr/solr/etc/jetty.xml +0 -219
- data/sunspot_solr/solr/etc/webdefault.xml +0 -379
- data/sunspot_solr/solr/lib/jetty-6.1.26-patched-JETTY-1340.jar +0 -0
- data/sunspot_solr/solr/lib/jetty-util-6.1.26-patched-JETTY-1340.jar +0 -0
- data/sunspot_solr/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
- data/sunspot_solr/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
- data/sunspot_solr/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
- data/sunspot_solr/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
- data/sunspot_solr/solr/lib/servlet-api-2.5-20081211.jar +0 -0
- data/sunspot_solr/solr/solr/.gitignore +0 -1
- data/sunspot_solr/solr/solr/README.txt +0 -54
- data/sunspot_solr/solr/solr/conf/admin-extra.html +0 -31
- data/sunspot_solr/solr/solr/conf/elevate.xml +0 -36
- data/sunspot_solr/solr/solr/conf/mapping-ISOLatin1Accent.txt +0 -246
- data/sunspot_solr/solr/solr/conf/protwords.txt +0 -21
- data/sunspot_solr/solr/solr/conf/schema.xml +0 -250
- data/sunspot_solr/solr/solr/conf/scripts.conf +0 -24
- data/sunspot_solr/solr/solr/conf/solrconfig.xml +0 -934
- data/sunspot_solr/solr/solr/conf/spellings.txt +0 -2
- data/sunspot_solr/solr/solr/conf/stopwords.txt +0 -58
- data/sunspot_solr/solr/solr/conf/synonyms.txt +0 -31
- data/sunspot_solr/solr/solr/conf/xslt/example.xsl +0 -132
- data/sunspot_solr/solr/solr/conf/xslt/example_atom.xsl +0 -67
- data/sunspot_solr/solr/solr/conf/xslt/example_rss.xsl +0 -66
- data/sunspot_solr/solr/solr/conf/xslt/luke.xsl +0 -337
- data/sunspot_solr/solr/start.jar +0 -0
- data/sunspot_solr/solr/webapps/solr.war +0 -0
- data/sunspot_solr/spec/server_spec.rb +0 -98
- data/sunspot_solr/spec/spec_helper.rb +0 -18
- data/sunspot_solr/sunspot_solr.gemspec +0 -37
- 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
|
data/sunspot/lib/sunspot/dsl.rb
DELETED
@@ -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
|