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,61 +0,0 @@
|
|
1
|
-
module Sunspot
|
2
|
-
module Query
|
3
|
-
class MoreLikeThis
|
4
|
-
attr_reader :fields
|
5
|
-
|
6
|
-
def initialize(document)
|
7
|
-
@document_scope = Restriction::EqualTo.new(
|
8
|
-
false,
|
9
|
-
IdField.instance,
|
10
|
-
Adapters::InstanceAdapter.adapt(document).index_id
|
11
|
-
)
|
12
|
-
@fields = {}
|
13
|
-
@params = {}
|
14
|
-
end
|
15
|
-
|
16
|
-
def add_field(field, boost = nil)
|
17
|
-
raise(ArgumentError, "Field #{field.name} is not set up for more_like_this") unless field.more_like_this?
|
18
|
-
@fields[field.indexed_name] = TextFieldBoost.new(field, boost)
|
19
|
-
end
|
20
|
-
|
21
|
-
def minimum_term_frequency=(mintf)
|
22
|
-
@params[:"mlt.mintf"] = mintf
|
23
|
-
end
|
24
|
-
|
25
|
-
def minimum_document_frequency=(mindf)
|
26
|
-
@params[:"mlt.mindf"] = mindf
|
27
|
-
end
|
28
|
-
|
29
|
-
def minimum_word_length=(minwl)
|
30
|
-
@params[:"mlt.minwl"] = minwl
|
31
|
-
end
|
32
|
-
|
33
|
-
def maximum_word_length=(maxwl)
|
34
|
-
@params[:"mlt.maxwl"] = maxwl
|
35
|
-
end
|
36
|
-
|
37
|
-
def maximum_query_terms=(maxqt)
|
38
|
-
@params[:"mlt.maxqt"] = maxqt
|
39
|
-
end
|
40
|
-
|
41
|
-
def boost_by_relevance=(should_boost)
|
42
|
-
@params[:"mlt.boost"] = should_boost
|
43
|
-
end
|
44
|
-
|
45
|
-
def to_params
|
46
|
-
params = Sunspot::Util.deep_merge(
|
47
|
-
@params,
|
48
|
-
:q => @document_scope.to_boolean_phrase
|
49
|
-
)
|
50
|
-
params[:"mlt.fl"] = @fields.keys.join(",")
|
51
|
-
boosted_fields = @fields.values.select { |field| field.boost }
|
52
|
-
unless boosted_fields.empty?
|
53
|
-
params[:qf] = boosted_fields.map do |field|
|
54
|
-
field.to_boosted_field
|
55
|
-
end.join(' ')
|
56
|
-
end
|
57
|
-
params
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
module Sunspot
|
2
|
-
module Query
|
3
|
-
#
|
4
|
-
# A query component that holds information about pagination. Unlike other
|
5
|
-
# query components, this one is mutable, because the query itself holds a
|
6
|
-
# reference to it and updates it if pagination is changed.
|
7
|
-
#
|
8
|
-
class Pagination #:nodoc:
|
9
|
-
attr_reader :page, :per_page, :offset
|
10
|
-
|
11
|
-
def initialize(page = nil, per_page = nil, offset = nil)
|
12
|
-
self.offset, self.page, self.per_page = offset, page, per_page
|
13
|
-
end
|
14
|
-
|
15
|
-
def to_params
|
16
|
-
{ :start => start, :rows => rows }
|
17
|
-
end
|
18
|
-
|
19
|
-
def page=(page)
|
20
|
-
@page = page.to_i if page
|
21
|
-
end
|
22
|
-
|
23
|
-
def per_page=(per_page)
|
24
|
-
@per_page = per_page.to_i if per_page
|
25
|
-
end
|
26
|
-
|
27
|
-
def offset=(offset)
|
28
|
-
@offset = offset.to_i
|
29
|
-
end
|
30
|
-
|
31
|
-
private
|
32
|
-
|
33
|
-
def start
|
34
|
-
(@page - 1) * @per_page + @offset
|
35
|
-
end
|
36
|
-
|
37
|
-
def rows
|
38
|
-
@per_page
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
module Sunspot
|
2
|
-
module Query
|
3
|
-
class QueryFacet < Connective::Conjunction
|
4
|
-
|
5
|
-
def initialize(options = {}, negated = false)
|
6
|
-
if exclude_filters = options[:exclude]
|
7
|
-
@exclude_tag = Util.Array(exclude_filters).map do |filter|
|
8
|
-
filter.tag
|
9
|
-
end.join(',')
|
10
|
-
end
|
11
|
-
super(negated)
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
def to_params
|
16
|
-
if @components.empty?
|
17
|
-
{}
|
18
|
-
else
|
19
|
-
{
|
20
|
-
:facet => 'true',
|
21
|
-
:"facet.query" => to_boolean_phrase
|
22
|
-
}
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def to_boolean_phrase
|
27
|
-
"#{to_local_params}#{super}"
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def local_params
|
33
|
-
@local_params ||=
|
34
|
-
begin
|
35
|
-
local_params = {}
|
36
|
-
local_params[:ex] = @exclude_tag if @exclude_tag
|
37
|
-
local_params
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def to_local_params
|
42
|
-
if local_params.empty?
|
43
|
-
''
|
44
|
-
else
|
45
|
-
pairs = local_params.map do |key, value|
|
46
|
-
"#{key}=#{value}"
|
47
|
-
end
|
48
|
-
"{!#{pairs.join(' ')}}"
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module Sunspot
|
2
|
-
module Query
|
3
|
-
class RangeFacet < AbstractFieldFacet
|
4
|
-
def to_params
|
5
|
-
params = super
|
6
|
-
params[:"facet.range"] = [@field.indexed_name]
|
7
|
-
params[qualified_param('range.start')] = @field.to_indexed(@options[:range].first)
|
8
|
-
params[qualified_param('range.end')] = @field.to_indexed(@options[:range].last)
|
9
|
-
params[qualified_param('range.gap')] = "#{@options[:range_interval] || 10}"
|
10
|
-
params[qualified_param('range.include')] = @options[:include].to_s if @options[:include]
|
11
|
-
params
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,308 +0,0 @@
|
|
1
|
-
module Sunspot
|
2
|
-
module Query
|
3
|
-
module Restriction #:nodoc:
|
4
|
-
class <<self
|
5
|
-
#
|
6
|
-
# Return the names of all of the restriction classes that should be made
|
7
|
-
# available to the DSL.
|
8
|
-
#
|
9
|
-
# ==== Returns
|
10
|
-
#
|
11
|
-
# Array:: Collection of restriction class names
|
12
|
-
#
|
13
|
-
def names
|
14
|
-
constants - %w(Base) #XXX this seems ugly
|
15
|
-
end
|
16
|
-
|
17
|
-
#
|
18
|
-
# Convenience method to access a restriction class by an underscored
|
19
|
-
# symbol or string
|
20
|
-
#
|
21
|
-
def [](restriction_name)
|
22
|
-
@types ||= {}
|
23
|
-
@types[restriction_name.to_sym] ||= const_get(Sunspot::Util.camel_case(restriction_name.to_s))
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
#
|
28
|
-
# Subclasses of this class represent restrictions that can be applied to
|
29
|
-
# a Sunspot query. The Sunspot::DSL::Restriction class presents a builder
|
30
|
-
# API for instances of this class.
|
31
|
-
#
|
32
|
-
# Implementations of this class must respond to #to_params and
|
33
|
-
# #to_negated_params. Instead of implementing those methods, they may
|
34
|
-
# choose to implement any of:
|
35
|
-
#
|
36
|
-
# * #to_positive_boolean_phrase, and optionally #to_negated_boolean_phrase
|
37
|
-
# * #to_solr_conditional
|
38
|
-
#
|
39
|
-
class Base #:nodoc:
|
40
|
-
include Filter
|
41
|
-
include RSolr::Char
|
42
|
-
|
43
|
-
RESERVED_WORDS = Set['AND', 'OR', 'NOT']
|
44
|
-
|
45
|
-
def initialize(negated, field, value)
|
46
|
-
raise ArgumentError.new("RFCTR") unless [true, false].include?(negated)
|
47
|
-
@negated, @field, @value = negated, field, value
|
48
|
-
end
|
49
|
-
|
50
|
-
#
|
51
|
-
# A hash representing this restriction in solr-ruby's parameter format.
|
52
|
-
# All restriction implementations must respond to this method; however,
|
53
|
-
# the base implementation delegates to the #to_positive_boolean_phrase method, so
|
54
|
-
# subclasses may (and probably should) choose to implement that method
|
55
|
-
# instead.
|
56
|
-
#
|
57
|
-
# ==== Returns
|
58
|
-
#
|
59
|
-
# Hash:: Representation of this restriction as solr-ruby parameters
|
60
|
-
#
|
61
|
-
def to_params
|
62
|
-
{ :fq => [to_filter_query] }
|
63
|
-
end
|
64
|
-
|
65
|
-
#
|
66
|
-
# Return the boolean phrase associated with this restriction object.
|
67
|
-
# Differentiates between positive and negated boolean phrases depending
|
68
|
-
# on whether this restriction is negated.
|
69
|
-
#
|
70
|
-
def to_boolean_phrase
|
71
|
-
unless negated?
|
72
|
-
to_positive_boolean_phrase
|
73
|
-
else
|
74
|
-
to_negated_boolean_phrase
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
#
|
79
|
-
# Boolean phrase representing this restriction in the positive. Subclasses
|
80
|
-
# may choose to implement this method rather than #to_params; however,
|
81
|
-
# this method delegates to the abstract #to_solr_conditional method, which
|
82
|
-
# in most cases will be what subclasses will want to implement.
|
83
|
-
# #to_solr_conditional contains the boolean phrase representing the
|
84
|
-
# condition but leaves out the field name (see built-in implementations
|
85
|
-
# for examples)
|
86
|
-
#
|
87
|
-
# ==== Returns
|
88
|
-
#
|
89
|
-
# String:: Boolean phrase for restriction in the positive
|
90
|
-
#
|
91
|
-
def to_positive_boolean_phrase
|
92
|
-
"#{escape(@field.indexed_name)}:#{to_solr_conditional}"
|
93
|
-
end
|
94
|
-
|
95
|
-
#
|
96
|
-
# Boolean phrase representing this restriction in the negated. Subclasses
|
97
|
-
# may choose to implement this method, but it is not necessary, as the
|
98
|
-
# base implementation delegates to #to_positive_boolean_phrase.
|
99
|
-
#
|
100
|
-
# ==== Returns
|
101
|
-
#
|
102
|
-
# String:: Boolean phrase for restriction in the negated
|
103
|
-
#
|
104
|
-
def to_negated_boolean_phrase
|
105
|
-
"-#{to_positive_boolean_phrase}"
|
106
|
-
end
|
107
|
-
|
108
|
-
#
|
109
|
-
# Whether this restriction should be negated from its original meaning
|
110
|
-
#
|
111
|
-
def negated? #:nodoc:
|
112
|
-
!!@negated
|
113
|
-
end
|
114
|
-
|
115
|
-
#
|
116
|
-
# Return a new restriction that is the negated version of this one. It
|
117
|
-
# is used by disjunction denormalization.
|
118
|
-
#
|
119
|
-
def negate
|
120
|
-
self.class.new(!@negated, @field, @value)
|
121
|
-
end
|
122
|
-
|
123
|
-
protected
|
124
|
-
|
125
|
-
#
|
126
|
-
# Return escaped Solr API representation of given value
|
127
|
-
#
|
128
|
-
# ==== Parameters
|
129
|
-
#
|
130
|
-
# value<Object>::
|
131
|
-
# value to convert to Solr representation (default: @value)
|
132
|
-
#
|
133
|
-
# ==== Returns
|
134
|
-
#
|
135
|
-
# String:: Solr API representation of given value
|
136
|
-
#
|
137
|
-
def solr_value(value = @value)
|
138
|
-
solr_value = escape(@field.to_indexed(value))
|
139
|
-
if RESERVED_WORDS.include?(solr_value)
|
140
|
-
%Q("#{solr_value}")
|
141
|
-
else
|
142
|
-
solr_value
|
143
|
-
end
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
class InRadius < Base
|
148
|
-
def initialize(negated, field, lat, lon, radius)
|
149
|
-
@lat, @lon, @radius = lat, lon, radius
|
150
|
-
super negated, field, [lat, lon, radius]
|
151
|
-
end
|
152
|
-
|
153
|
-
private
|
154
|
-
def to_positive_boolean_phrase
|
155
|
-
"_query_:\"{!geofilt sfield=#{@field.indexed_name} pt=#{@lat},#{@lon} d=#{@radius}}\""
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
|
-
#
|
160
|
-
# Results must have field with value equal to given value. If the value
|
161
|
-
# is nil, results must have no value for the given field.
|
162
|
-
#
|
163
|
-
class EqualTo < Base
|
164
|
-
def to_positive_boolean_phrase
|
165
|
-
unless @value.nil?
|
166
|
-
super
|
167
|
-
else
|
168
|
-
"#{escape(@field.indexed_name)}:[* TO *]"
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
def negated?
|
173
|
-
if @value.nil?
|
174
|
-
!super
|
175
|
-
else
|
176
|
-
super
|
177
|
-
end
|
178
|
-
end
|
179
|
-
|
180
|
-
private
|
181
|
-
|
182
|
-
def to_solr_conditional
|
183
|
-
"#{solr_value}"
|
184
|
-
end
|
185
|
-
end
|
186
|
-
|
187
|
-
#
|
188
|
-
# Results must have field with value less than given value
|
189
|
-
#
|
190
|
-
class LessThan < Base
|
191
|
-
private
|
192
|
-
|
193
|
-
def solr_value(value = @value)
|
194
|
-
solr_value = super
|
195
|
-
solr_value = "\"#{solr_value}\"" if solr_value.index(' ')
|
196
|
-
solr_value
|
197
|
-
end
|
198
|
-
|
199
|
-
def to_solr_conditional
|
200
|
-
"{* TO #{solr_value}}"
|
201
|
-
end
|
202
|
-
end
|
203
|
-
|
204
|
-
#
|
205
|
-
# Results must have field with value less or equal to than given value
|
206
|
-
#
|
207
|
-
class LessThanOrEqualTo < Base
|
208
|
-
private
|
209
|
-
|
210
|
-
def solr_value(value = @value)
|
211
|
-
solr_value = super
|
212
|
-
solr_value = "\"#{solr_value}\"" if solr_value.index(' ')
|
213
|
-
solr_value
|
214
|
-
end
|
215
|
-
|
216
|
-
def to_solr_conditional
|
217
|
-
"[* TO #{solr_value}]"
|
218
|
-
end
|
219
|
-
end
|
220
|
-
|
221
|
-
#
|
222
|
-
# Results must have field with value greater than given value
|
223
|
-
#
|
224
|
-
class GreaterThan < Base
|
225
|
-
private
|
226
|
-
|
227
|
-
def solr_value(value = @value)
|
228
|
-
solr_value = super
|
229
|
-
solr_value = "\"#{solr_value}\"" if solr_value.index(' ')
|
230
|
-
solr_value
|
231
|
-
end
|
232
|
-
|
233
|
-
def to_solr_conditional
|
234
|
-
"{#{solr_value} TO *}"
|
235
|
-
end
|
236
|
-
end
|
237
|
-
|
238
|
-
#
|
239
|
-
# Results must have field with value greater than or equal to given value
|
240
|
-
#
|
241
|
-
class GreaterThanOrEqualTo < Base
|
242
|
-
private
|
243
|
-
|
244
|
-
def solr_value(value = @value)
|
245
|
-
solr_value = super
|
246
|
-
solr_value = "\"#{solr_value}\"" if solr_value.index(' ')
|
247
|
-
solr_value
|
248
|
-
end
|
249
|
-
|
250
|
-
def to_solr_conditional
|
251
|
-
"[#{solr_value} TO *]"
|
252
|
-
end
|
253
|
-
end
|
254
|
-
|
255
|
-
#
|
256
|
-
# Results must have field with value in given range
|
257
|
-
#
|
258
|
-
class Between < Base
|
259
|
-
private
|
260
|
-
|
261
|
-
def solr_value(value = @value)
|
262
|
-
solr_value = super
|
263
|
-
solr_value = "\"#{solr_value}\"" if solr_value.index(' ')
|
264
|
-
solr_value
|
265
|
-
end
|
266
|
-
|
267
|
-
def to_solr_conditional
|
268
|
-
"[#{solr_value(@value.first)} TO #{solr_value(@value.last)}]"
|
269
|
-
end
|
270
|
-
end
|
271
|
-
|
272
|
-
#
|
273
|
-
# Results must have field with value included in given collection
|
274
|
-
#
|
275
|
-
class AnyOf < Base
|
276
|
-
private
|
277
|
-
|
278
|
-
def to_solr_conditional
|
279
|
-
"(#{@value.map { |v| solr_value v } * ' OR '})"
|
280
|
-
end
|
281
|
-
end
|
282
|
-
|
283
|
-
#
|
284
|
-
# Results must have field with values matching all values in given
|
285
|
-
# collection (only makes sense for fields with multiple values)
|
286
|
-
#
|
287
|
-
class AllOf < Base
|
288
|
-
private
|
289
|
-
|
290
|
-
def to_solr_conditional
|
291
|
-
"(#{@value.map { |v| solr_value v } * ' AND '})"
|
292
|
-
end
|
293
|
-
end
|
294
|
-
|
295
|
-
#
|
296
|
-
# Results must have a field with a value that begins with the argument.
|
297
|
-
# Most useful for strings, but in theory will work with anything.
|
298
|
-
#
|
299
|
-
class StartingWith < Base
|
300
|
-
private
|
301
|
-
|
302
|
-
def to_solr_conditional
|
303
|
-
"#{solr_value(@value)}*"
|
304
|
-
end
|
305
|
-
end
|
306
|
-
end
|
307
|
-
end
|
308
|
-
end
|