riddle 2.1.0 → 2.2.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +8 -5
- data/Gemfile +10 -0
- data/HISTORY +4 -0
- data/README.markdown +1 -1
- data/lib/riddle.rb +1 -0
- data/lib/riddle/0.9.9/configuration/searchd.rb +1 -1
- data/lib/riddle/client.rb +4 -1
- data/lib/riddle/client/message.rb +15 -14
- data/lib/riddle/configuration/parser.rb +1 -0
- data/lib/riddle/configuration/section.rb +9 -9
- data/lib/riddle/configuration/source.rb +5 -5
- data/lib/riddle/query/select.rb +3 -2
- data/riddle.gemspec +2 -4
- metadata +4 -329
- data/spec/fixtures/.gitignore +0 -2
- data/spec/fixtures/data/0.9.9/anchor.bin +0 -0
- data/spec/fixtures/data/0.9.9/any.bin +0 -0
- data/spec/fixtures/data/0.9.9/boolean.bin +0 -0
- data/spec/fixtures/data/0.9.9/comment.bin +0 -0
- data/spec/fixtures/data/0.9.9/distinct.bin +0 -0
- data/spec/fixtures/data/0.9.9/field_weights.bin +0 -0
- data/spec/fixtures/data/0.9.9/filter.bin +0 -0
- data/spec/fixtures/data/0.9.9/filter_array.bin +0 -0
- data/spec/fixtures/data/0.9.9/filter_array_exclude.bin +0 -0
- data/spec/fixtures/data/0.9.9/filter_boolean.bin +0 -0
- data/spec/fixtures/data/0.9.9/filter_floats.bin +0 -0
- data/spec/fixtures/data/0.9.9/filter_floats_exclude.bin +0 -0
- data/spec/fixtures/data/0.9.9/filter_range.bin +0 -0
- data/spec/fixtures/data/0.9.9/filter_range_exclude.bin +0 -0
- data/spec/fixtures/data/0.9.9/group.bin +0 -0
- data/spec/fixtures/data/0.9.9/index.bin +0 -0
- data/spec/fixtures/data/0.9.9/index_weights.bin +0 -0
- data/spec/fixtures/data/0.9.9/keywords_with_hits.bin +0 -0
- data/spec/fixtures/data/0.9.9/keywords_without_hits.bin +0 -0
- data/spec/fixtures/data/0.9.9/overrides.bin +0 -0
- data/spec/fixtures/data/0.9.9/phrase.bin +0 -0
- data/spec/fixtures/data/0.9.9/rank_mode.bin +0 -0
- data/spec/fixtures/data/0.9.9/select.bin +0 -0
- data/spec/fixtures/data/0.9.9/simple.bin +0 -0
- data/spec/fixtures/data/0.9.9/sort.bin +0 -0
- data/spec/fixtures/data/0.9.9/update_simple.bin +0 -0
- data/spec/fixtures/data/0.9.9/weights.bin +0 -0
- data/spec/fixtures/data/1.10/anchor.bin +0 -0
- data/spec/fixtures/data/1.10/any.bin +0 -0
- data/spec/fixtures/data/1.10/boolean.bin +0 -0
- data/spec/fixtures/data/1.10/comment.bin +0 -0
- data/spec/fixtures/data/1.10/distinct.bin +0 -0
- data/spec/fixtures/data/1.10/field_weights.bin +0 -0
- data/spec/fixtures/data/1.10/filter.bin +0 -0
- data/spec/fixtures/data/1.10/filter_array.bin +0 -0
- data/spec/fixtures/data/1.10/filter_array_exclude.bin +0 -0
- data/spec/fixtures/data/1.10/filter_boolean.bin +0 -0
- data/spec/fixtures/data/1.10/filter_floats.bin +0 -0
- data/spec/fixtures/data/1.10/filter_floats_exclude.bin +0 -0
- data/spec/fixtures/data/1.10/filter_range.bin +0 -0
- data/spec/fixtures/data/1.10/filter_range_exclude.bin +0 -0
- data/spec/fixtures/data/1.10/group.bin +0 -0
- data/spec/fixtures/data/1.10/index.bin +0 -0
- data/spec/fixtures/data/1.10/index_weights.bin +0 -0
- data/spec/fixtures/data/1.10/keywords_with_hits.bin +0 -0
- data/spec/fixtures/data/1.10/keywords_without_hits.bin +0 -0
- data/spec/fixtures/data/1.10/overrides.bin +0 -0
- data/spec/fixtures/data/1.10/phrase.bin +0 -0
- data/spec/fixtures/data/1.10/rank_mode.bin +0 -0
- data/spec/fixtures/data/1.10/select.bin +0 -0
- data/spec/fixtures/data/1.10/simple.bin +0 -0
- data/spec/fixtures/data/1.10/sort.bin +0 -0
- data/spec/fixtures/data/1.10/update_simple.bin +0 -0
- data/spec/fixtures/data/1.10/weights.bin +0 -0
- data/spec/fixtures/data/2.0.1/anchor.bin +0 -0
- data/spec/fixtures/data/2.0.1/any.bin +0 -0
- data/spec/fixtures/data/2.0.1/boolean.bin +0 -0
- data/spec/fixtures/data/2.0.1/comment.bin +0 -0
- data/spec/fixtures/data/2.0.1/distinct.bin +0 -0
- data/spec/fixtures/data/2.0.1/field_weights.bin +0 -0
- data/spec/fixtures/data/2.0.1/filter.bin +0 -0
- data/spec/fixtures/data/2.0.1/filter_array.bin +0 -0
- data/spec/fixtures/data/2.0.1/filter_array_exclude.bin +0 -0
- data/spec/fixtures/data/2.0.1/filter_boolean.bin +0 -0
- data/spec/fixtures/data/2.0.1/filter_floats.bin +0 -0
- data/spec/fixtures/data/2.0.1/filter_floats_exclude.bin +0 -0
- data/spec/fixtures/data/2.0.1/filter_range.bin +0 -0
- data/spec/fixtures/data/2.0.1/filter_range_exclude.bin +0 -0
- data/spec/fixtures/data/2.0.1/group.bin +0 -0
- data/spec/fixtures/data/2.0.1/index.bin +0 -0
- data/spec/fixtures/data/2.0.1/index_weights.bin +0 -0
- data/spec/fixtures/data/2.0.1/keywords_with_hits.bin +0 -0
- data/spec/fixtures/data/2.0.1/keywords_without_hits.bin +0 -0
- data/spec/fixtures/data/2.0.1/overrides.bin +0 -0
- data/spec/fixtures/data/2.0.1/phrase.bin +0 -0
- data/spec/fixtures/data/2.0.1/rank_mode.bin +0 -0
- data/spec/fixtures/data/2.0.1/select.bin +0 -0
- data/spec/fixtures/data/2.0.1/simple.bin +0 -0
- data/spec/fixtures/data/2.0.1/sort.bin +0 -0
- data/spec/fixtures/data/2.0.1/update_simple.bin +0 -0
- data/spec/fixtures/data/2.0.1/weights.bin +0 -0
- data/spec/fixtures/data/2.1.0/anchor.bin +0 -0
- data/spec/fixtures/data/2.1.0/any.bin +0 -0
- data/spec/fixtures/data/2.1.0/boolean.bin +0 -0
- data/spec/fixtures/data/2.1.0/comment.bin +0 -0
- data/spec/fixtures/data/2.1.0/distinct.bin +0 -0
- data/spec/fixtures/data/2.1.0/field_weights.bin +0 -0
- data/spec/fixtures/data/2.1.0/filter.bin +0 -0
- data/spec/fixtures/data/2.1.0/filter_array.bin +0 -0
- data/spec/fixtures/data/2.1.0/filter_array_exclude.bin +0 -0
- data/spec/fixtures/data/2.1.0/filter_boolean.bin +0 -0
- data/spec/fixtures/data/2.1.0/filter_floats.bin +0 -0
- data/spec/fixtures/data/2.1.0/filter_floats_exclude.bin +0 -0
- data/spec/fixtures/data/2.1.0/filter_range.bin +0 -0
- data/spec/fixtures/data/2.1.0/filter_range_exclude.bin +0 -0
- data/spec/fixtures/data/2.1.0/group.bin +0 -0
- data/spec/fixtures/data/2.1.0/index.bin +0 -0
- data/spec/fixtures/data/2.1.0/index_weights.bin +0 -0
- data/spec/fixtures/data/2.1.0/keywords_with_hits.bin +0 -0
- data/spec/fixtures/data/2.1.0/keywords_without_hits.bin +0 -0
- data/spec/fixtures/data/2.1.0/overrides.bin +0 -0
- data/spec/fixtures/data/2.1.0/phrase.bin +0 -0
- data/spec/fixtures/data/2.1.0/rank_mode.bin +0 -0
- data/spec/fixtures/data/2.1.0/select.bin +0 -0
- data/spec/fixtures/data/2.1.0/simple.bin +0 -0
- data/spec/fixtures/data/2.1.0/sort.bin +0 -0
- data/spec/fixtures/data/2.1.0/update_simple.bin +0 -0
- data/spec/fixtures/data/2.1.0/weights.bin +0 -0
- data/spec/fixtures/data_generator.0.9.8.php +0 -208
- data/spec/fixtures/data_generator.0.9.9.php +0 -5
- data/spec/fixtures/data_generator.1.10.php +0 -5
- data/spec/fixtures/data_generator.2.0.1.php +0 -5
- data/spec/fixtures/data_generator.2.1.0.php +0 -5
- data/spec/fixtures/data_generator.php +0 -223
- data/spec/fixtures/sphinxapi.0.9.8.php +0 -1228
- data/spec/fixtures/sphinxapi.0.9.9.php +0 -1646
- data/spec/fixtures/sphinxapi.1.10.php +0 -1728
- data/spec/fixtures/sphinxapi.2.0.1.php +0 -1731
- data/spec/fixtures/sphinxapi.2.1.0.php +0 -1752
- data/spec/fixtures/sql/conf.example.yml +0 -3
- data/spec/fixtures/sql/data.sql +0 -25000
- data/spec/fixtures/sql/data.tsv +0 -25000
- data/spec/fixtures/sql/structure.sql +0 -16
- data/spec/functional/connection_spec.rb +0 -64
- data/spec/functional/escaping_spec.rb +0 -49
- data/spec/functional/excerpt_spec.rb +0 -139
- data/spec/functional/keywords_spec.rb +0 -40
- data/spec/functional/persistance_spec.rb +0 -17
- data/spec/functional/search_spec.rb +0 -67
- data/spec/functional/status_spec.rb +0 -21
- data/spec/functional/update_spec.rb +0 -41
- data/spec/riddle/auto_version_spec.rb +0 -95
- data/spec/riddle/client_spec.rb +0 -11
- data/spec/riddle/configuration_spec.rb +0 -28
- data/spec/riddle/controller_spec.rb +0 -39
- data/spec/riddle/query/delete_spec.rb +0 -18
- data/spec/riddle/query/insert_spec.rb +0 -25
- data/spec/riddle/query/select_spec.rb +0 -226
- data/spec/riddle/query_spec.rb +0 -97
- data/spec/riddle_spec.rb +0 -27
- data/spec/spec_helper.rb +0 -34
- data/spec/support/binary_fixtures.rb +0 -18
- data/spec/support/sphinx.rb +0 -137
- data/spec/unit/client_spec.rb +0 -290
- data/spec/unit/configuration/common_spec.rb +0 -60
- data/spec/unit/configuration/distributed_index_spec.rb +0 -58
- data/spec/unit/configuration/index_spec.rb +0 -124
- data/spec/unit/configuration/indexer_spec.rb +0 -73
- data/spec/unit/configuration/realtime_index_spec.rb +0 -65
- data/spec/unit/configuration/searchd_spec.rb +0 -228
- data/spec/unit/configuration/source_spec.rb +0 -5
- data/spec/unit/configuration/sql_source_spec.rb +0 -137
- data/spec/unit/configuration/template_index_spec.rb +0 -91
- data/spec/unit/configuration/tsv_source_spec.rb +0 -53
- data/spec/unit/configuration/xml_source_spec.rb +0 -51
- data/spec/unit/configuration_spec.rb +0 -25
- data/spec/unit/filter_spec.rb +0 -38
- data/spec/unit/message_spec.rb +0 -94
- data/spec/unit/response_spec.rb +0 -64
- data/spec/unit/riddle_spec.rb +0 -17
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Riddle::Configuration::Common do
|
|
4
|
-
it "should always be valid" do
|
|
5
|
-
common = Riddle::Configuration::Common.new
|
|
6
|
-
common.should be_valid
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
it "should support Sphinx's common settings" do
|
|
10
|
-
settings = %w( lemmatizer_base on_json_attr_error json_autoconv_numbers
|
|
11
|
-
json_autoconv_keynames rlp_root rlp_environment rlp_max_batch_size
|
|
12
|
-
rlp_max_batch_docs )
|
|
13
|
-
common = Riddle::Configuration::Common.new
|
|
14
|
-
|
|
15
|
-
settings.each do |setting|
|
|
16
|
-
common.should respond_to(setting.to_sym)
|
|
17
|
-
common.should respond_to("#{setting}=".to_sym)
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "should render a correct configuration" do
|
|
22
|
-
common = Riddle::Configuration::Common.new
|
|
23
|
-
common.common_sphinx_configuration = true
|
|
24
|
-
|
|
25
|
-
common.render.should == <<-COMMON
|
|
26
|
-
common
|
|
27
|
-
{
|
|
28
|
-
}
|
|
29
|
-
COMMON
|
|
30
|
-
|
|
31
|
-
common.lemmatizer_base = "/tmp"
|
|
32
|
-
common.render.should == <<-COMMON
|
|
33
|
-
common
|
|
34
|
-
{
|
|
35
|
-
lemmatizer_base = /tmp
|
|
36
|
-
}
|
|
37
|
-
COMMON
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it "should not be present when common_sphinx_configuration is not set" do
|
|
41
|
-
common = Riddle::Configuration::Common.new
|
|
42
|
-
common.render.should be_nil
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
it "should not be present when common_sphinx_configuration is false" do
|
|
46
|
-
common = Riddle::Configuration::Common.new
|
|
47
|
-
common.common_sphinx_configuration = false
|
|
48
|
-
common.render.should be_nil
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
it "should render when common_sphinx_configuration is true" do
|
|
52
|
-
common = Riddle::Configuration::Common.new
|
|
53
|
-
common.common_sphinx_configuration = true
|
|
54
|
-
common.render.should == <<-COMMON
|
|
55
|
-
common
|
|
56
|
-
{
|
|
57
|
-
}
|
|
58
|
-
COMMON
|
|
59
|
-
end
|
|
60
|
-
end
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Riddle::Configuration::DistributedIndex do
|
|
4
|
-
it "should not be valid without any indices" do
|
|
5
|
-
index = Riddle::Configuration::DistributedIndex.new("dist1")
|
|
6
|
-
index.should_not be_valid
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
it "should be valid with just local indices" do
|
|
10
|
-
index = Riddle::Configuration::DistributedIndex.new("dist1")
|
|
11
|
-
index.local_indices << "local_one"
|
|
12
|
-
index.should be_valid
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
it "should be valid with just remote indices" do
|
|
16
|
-
index = Riddle::Configuration::DistributedIndex.new("dist1")
|
|
17
|
-
index.remote_indices << Riddle::Configuration::RemoteIndex.new("local", 3312, "remote_one")
|
|
18
|
-
index.should be_valid
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "should be of type 'distributed'" do
|
|
22
|
-
index = Riddle::Configuration::DistributedIndex.new("dist1")
|
|
23
|
-
index.type.should == 'distributed'
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
it "should raise a ConfigurationError if rendering when not valid" do
|
|
27
|
-
index = Riddle::Configuration::DistributedIndex.new("dist1")
|
|
28
|
-
lambda { index.render }.should raise_error(Riddle::Configuration::ConfigurationError)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it "should render correctly if supplied settings are valid" do
|
|
32
|
-
index = Riddle::Configuration::DistributedIndex.new("dist1")
|
|
33
|
-
|
|
34
|
-
index.local_indices << "test1" << "test1stemmed"
|
|
35
|
-
index.remote_indices <<
|
|
36
|
-
Riddle::Configuration::RemoteIndex.new("localhost", 3313, "remote1") <<
|
|
37
|
-
Riddle::Configuration::RemoteIndex.new("localhost", 3314, "remote2") <<
|
|
38
|
-
Riddle::Configuration::RemoteIndex.new("localhost", 3314, "remote3")
|
|
39
|
-
index.agent_blackhole << "testbox:3312:testindex1,testindex2"
|
|
40
|
-
|
|
41
|
-
index.agent_connect_timeout = 1000
|
|
42
|
-
index.agent_query_timeout = 3000
|
|
43
|
-
|
|
44
|
-
index.render.should == <<-DISTINDEX
|
|
45
|
-
index dist1
|
|
46
|
-
{
|
|
47
|
-
type = distributed
|
|
48
|
-
local = test1
|
|
49
|
-
local = test1stemmed
|
|
50
|
-
agent = localhost:3313:remote1
|
|
51
|
-
agent = localhost:3314:remote2,remote3
|
|
52
|
-
agent_blackhole = testbox:3312:testindex1,testindex2
|
|
53
|
-
agent_connect_timeout = 1000
|
|
54
|
-
agent_query_timeout = 3000
|
|
55
|
-
}
|
|
56
|
-
DISTINDEX
|
|
57
|
-
end
|
|
58
|
-
end
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Riddle::Configuration::DistributedIndex do
|
|
4
|
-
it "should be invalid without a name, sources or path if there's no parent" do
|
|
5
|
-
index = Riddle::Configuration::Index.new(nil)
|
|
6
|
-
index.should_not be_valid
|
|
7
|
-
|
|
8
|
-
index.name = "test1"
|
|
9
|
-
index.should_not be_valid
|
|
10
|
-
|
|
11
|
-
index.sources << Riddle::Configuration::SQLSource.new("source", "mysql")
|
|
12
|
-
index.should_not be_valid
|
|
13
|
-
|
|
14
|
-
index.path = "a/path"
|
|
15
|
-
index.should be_valid
|
|
16
|
-
|
|
17
|
-
index.name = nil
|
|
18
|
-
index.should_not be_valid
|
|
19
|
-
|
|
20
|
-
index.name = "test1"
|
|
21
|
-
index.sources.clear
|
|
22
|
-
index.should_not be_valid
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
it "should be invalid without a name but not sources or path if it has a parent" do
|
|
26
|
-
index = Riddle::Configuration::Index.new(nil)
|
|
27
|
-
index.should_not be_valid
|
|
28
|
-
|
|
29
|
-
index.name = "test1stemmed"
|
|
30
|
-
index.should_not be_valid
|
|
31
|
-
|
|
32
|
-
index.parent = "test1"
|
|
33
|
-
index.should be_valid
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
it "should raise a ConfigurationError if rendering when not valid" do
|
|
37
|
-
index = Riddle::Configuration::Index.new("test1")
|
|
38
|
-
lambda { index.render }.should raise_error(Riddle::Configuration::ConfigurationError)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
it "should render correctly if supplied settings are valid" do
|
|
42
|
-
source = Riddle::Configuration::XMLSource.new("src1", "xmlpipe")
|
|
43
|
-
source.xmlpipe_command = "ls /dev/null"
|
|
44
|
-
|
|
45
|
-
index = Riddle::Configuration::Index.new("test1", source)
|
|
46
|
-
index.path = "/var/data/test1"
|
|
47
|
-
index.docinfo = "extern"
|
|
48
|
-
index.mlock = 0
|
|
49
|
-
index.morphologies << "stem_en" << "stem_ru" << "soundex"
|
|
50
|
-
index.min_stemming_len = 1
|
|
51
|
-
index.stopword_files << "/var/data/stopwords.txt" << "/var/data/stopwords2.txt"
|
|
52
|
-
index.wordform_files << "/var/data/wordforms.txt"
|
|
53
|
-
index.exception_files << "/var/data/exceptions.txt"
|
|
54
|
-
index.min_word_len = 1
|
|
55
|
-
index.charset_type = "utf-8"
|
|
56
|
-
index.charset_table = "0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F"
|
|
57
|
-
index.ignore_characters << "U+00AD"
|
|
58
|
-
index.min_prefix_len = 0
|
|
59
|
-
index.min_infix_len = 0
|
|
60
|
-
index.prefix_field_names << "filename"
|
|
61
|
-
index.infix_field_names << "url" << "domain"
|
|
62
|
-
index.enable_star = true
|
|
63
|
-
index.ngram_len = 1
|
|
64
|
-
index.ngram_characters << "U+3000..U+2FA1F"
|
|
65
|
-
index.phrase_boundaries << "." << "?" << "!" << "U+2026"
|
|
66
|
-
index.phrase_boundary_step = 100
|
|
67
|
-
index.html_strip = 0
|
|
68
|
-
index.html_index_attrs = "img=alt,title; a=title"
|
|
69
|
-
index.html_remove_element_tags << "style" << "script"
|
|
70
|
-
index.preopen = 1
|
|
71
|
-
index.ondisk_dict = 1
|
|
72
|
-
index.inplace_enable = 1
|
|
73
|
-
index.inplace_hit_gap = 0
|
|
74
|
-
index.inplace_docinfo_gap = 0
|
|
75
|
-
index.inplace_reloc_factor = 0.1
|
|
76
|
-
index.inplace_write_factor = 0.1
|
|
77
|
-
index.index_exact_words = 1
|
|
78
|
-
|
|
79
|
-
index.render.should == <<-INDEX
|
|
80
|
-
source src1
|
|
81
|
-
{
|
|
82
|
-
type = xmlpipe
|
|
83
|
-
xmlpipe_command = ls /dev/null
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
index test1
|
|
87
|
-
{
|
|
88
|
-
path = /var/data/test1
|
|
89
|
-
docinfo = extern
|
|
90
|
-
mlock = 0
|
|
91
|
-
morphology = stem_en, stem_ru, soundex
|
|
92
|
-
min_stemming_len = 1
|
|
93
|
-
stopwords = /var/data/stopwords.txt /var/data/stopwords2.txt
|
|
94
|
-
wordforms = /var/data/wordforms.txt
|
|
95
|
-
exceptions = /var/data/exceptions.txt
|
|
96
|
-
min_word_len = 1
|
|
97
|
-
charset_type = utf-8
|
|
98
|
-
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
|
|
99
|
-
ignore_chars = U+00AD
|
|
100
|
-
min_prefix_len = 0
|
|
101
|
-
min_infix_len = 0
|
|
102
|
-
prefix_fields = filename
|
|
103
|
-
infix_fields = url, domain
|
|
104
|
-
enable_star = 1
|
|
105
|
-
ngram_len = 1
|
|
106
|
-
ngram_chars = U+3000..U+2FA1F
|
|
107
|
-
phrase_boundary = ., ?, !, U+2026
|
|
108
|
-
phrase_boundary_step = 100
|
|
109
|
-
html_strip = 0
|
|
110
|
-
html_index_attrs = img=alt,title; a=title
|
|
111
|
-
html_remove_elements = style, script
|
|
112
|
-
preopen = 1
|
|
113
|
-
ondisk_dict = 1
|
|
114
|
-
inplace_enable = 1
|
|
115
|
-
inplace_hit_gap = 0
|
|
116
|
-
inplace_docinfo_gap = 0
|
|
117
|
-
inplace_reloc_factor = 0.1
|
|
118
|
-
inplace_write_factor = 0.1
|
|
119
|
-
index_exact_words = 1
|
|
120
|
-
source = src1
|
|
121
|
-
}
|
|
122
|
-
INDEX
|
|
123
|
-
end
|
|
124
|
-
end
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Riddle::Configuration::Indexer do
|
|
4
|
-
it "should always be valid" do
|
|
5
|
-
indexer = Riddle::Configuration::Indexer.new
|
|
6
|
-
indexer.should be_valid
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
it "should support Sphinx's indexer settings" do
|
|
10
|
-
settings = %w( mem_limit max_iops max_iosize )
|
|
11
|
-
indexer = Riddle::Configuration::Indexer.new
|
|
12
|
-
|
|
13
|
-
settings.each do |setting|
|
|
14
|
-
indexer.should respond_to(setting.to_sym)
|
|
15
|
-
indexer.should respond_to("#{setting}=".to_sym)
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
it "should render a correct configuration" do
|
|
20
|
-
indexer = Riddle::Configuration::Indexer.new
|
|
21
|
-
|
|
22
|
-
indexer.render.should == <<-INDEXER
|
|
23
|
-
indexer
|
|
24
|
-
{
|
|
25
|
-
}
|
|
26
|
-
INDEXER
|
|
27
|
-
|
|
28
|
-
indexer.mem_limit = "32M"
|
|
29
|
-
indexer.render.should == <<-INDEXER
|
|
30
|
-
indexer
|
|
31
|
-
{
|
|
32
|
-
mem_limit = 32M
|
|
33
|
-
}
|
|
34
|
-
INDEXER
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should render shared settings when common_sphinx_configuration is not set" do
|
|
38
|
-
indexer = Riddle::Configuration::Indexer.new
|
|
39
|
-
indexer.rlp_root = '/tmp'
|
|
40
|
-
|
|
41
|
-
indexer.render.should == <<-INDEXER
|
|
42
|
-
indexer
|
|
43
|
-
{
|
|
44
|
-
rlp_root = /tmp
|
|
45
|
-
}
|
|
46
|
-
INDEXER
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
it "should render shared settings when common_sphinx_configuration is false" do
|
|
50
|
-
indexer = Riddle::Configuration::Indexer.new
|
|
51
|
-
indexer.common_sphinx_configuration = false
|
|
52
|
-
indexer.rlp_root = '/tmp'
|
|
53
|
-
|
|
54
|
-
indexer.render.should == <<-INDEXER
|
|
55
|
-
indexer
|
|
56
|
-
{
|
|
57
|
-
rlp_root = /tmp
|
|
58
|
-
}
|
|
59
|
-
INDEXER
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
it "should not render shared settings when common_sphinx_configuration is true" do
|
|
63
|
-
indexer = Riddle::Configuration::Indexer.new
|
|
64
|
-
indexer.common_sphinx_configuration = true
|
|
65
|
-
indexer.rlp_root = '/tmp'
|
|
66
|
-
|
|
67
|
-
indexer.render.should == <<-INDEXER
|
|
68
|
-
indexer
|
|
69
|
-
{
|
|
70
|
-
}
|
|
71
|
-
INDEXER
|
|
72
|
-
end
|
|
73
|
-
end
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Riddle::Configuration::RealtimeIndex do
|
|
4
|
-
let(:index) { Riddle::Configuration::RealtimeIndex.new('rt1') }
|
|
5
|
-
|
|
6
|
-
describe '#valid?' do
|
|
7
|
-
it "should not be valid without a name" do
|
|
8
|
-
index.name = nil
|
|
9
|
-
index.path = 'foo'
|
|
10
|
-
index.should_not be_valid
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it "should not be valid without a path" do
|
|
14
|
-
index.path = nil
|
|
15
|
-
index.should_not be_valid
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
it "should be valid with a name and path" do
|
|
19
|
-
index.path = 'foo'
|
|
20
|
-
index.should be_valid
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
describe '#type' do
|
|
25
|
-
it "should be 'rt'" do
|
|
26
|
-
index.type.should == 'rt'
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
describe '#render' do
|
|
31
|
-
it "should raise a ConfigurationError if rendering when not valid" do
|
|
32
|
-
lambda {
|
|
33
|
-
index.render
|
|
34
|
-
}.should raise_error(Riddle::Configuration::ConfigurationError)
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should render correctly if supplied settings are valid" do
|
|
38
|
-
index.path = '/var/data/rt'
|
|
39
|
-
index.rt_mem_limit = '512M'
|
|
40
|
-
index.rt_field << 'title' << 'content'
|
|
41
|
-
|
|
42
|
-
index.rt_attr_uint << 'gid'
|
|
43
|
-
index.rt_attr_bigint << 'guid'
|
|
44
|
-
index.rt_attr_float << 'gpa'
|
|
45
|
-
index.rt_attr_timestamp << 'ts_added'
|
|
46
|
-
index.rt_attr_string << 'author'
|
|
47
|
-
|
|
48
|
-
index.render.should == <<-RTINDEX
|
|
49
|
-
index rt1
|
|
50
|
-
{
|
|
51
|
-
type = rt
|
|
52
|
-
path = /var/data/rt
|
|
53
|
-
rt_mem_limit = 512M
|
|
54
|
-
rt_field = title
|
|
55
|
-
rt_field = content
|
|
56
|
-
rt_attr_uint = gid
|
|
57
|
-
rt_attr_bigint = guid
|
|
58
|
-
rt_attr_float = gpa
|
|
59
|
-
rt_attr_timestamp = ts_added
|
|
60
|
-
rt_attr_string = author
|
|
61
|
-
}
|
|
62
|
-
RTINDEX
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Riddle::Configuration::Searchd do
|
|
4
|
-
if Riddle.loaded_version.to_f >= 0.9
|
|
5
|
-
it "should be invalid without a listen or pid_file" do
|
|
6
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
7
|
-
searchd.should_not be_valid
|
|
8
|
-
|
|
9
|
-
searchd.port = 3312
|
|
10
|
-
searchd.should_not be_valid
|
|
11
|
-
|
|
12
|
-
searchd.pid_file = "file.pid"
|
|
13
|
-
searchd.should be_valid
|
|
14
|
-
|
|
15
|
-
searchd.port = nil
|
|
16
|
-
searchd.listen = nil
|
|
17
|
-
searchd.should_not be_valid
|
|
18
|
-
|
|
19
|
-
searchd.listen = "localhost:3312"
|
|
20
|
-
searchd.should be_valid
|
|
21
|
-
end
|
|
22
|
-
else
|
|
23
|
-
it "should be invalid without a port or pid_file" do
|
|
24
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
25
|
-
searchd.should_not be_valid
|
|
26
|
-
|
|
27
|
-
searchd.port = 3312
|
|
28
|
-
searchd.should_not be_valid
|
|
29
|
-
|
|
30
|
-
searchd.pid_file = "file.pid"
|
|
31
|
-
searchd.should be_valid
|
|
32
|
-
|
|
33
|
-
searchd.port = nil
|
|
34
|
-
searchd.should_not be_valid
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
it "should raise a ConfigurationError if rendering but not valid" do
|
|
39
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
40
|
-
searchd.should_not be_valid
|
|
41
|
-
lambda { searchd.render }.should raise_error(Riddle::Configuration::ConfigurationError)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
it "should support Sphinx's searchd settings" do
|
|
45
|
-
settings = %w( listen address port log query_log read_timeout
|
|
46
|
-
client_timeout max_children pid_file max_matches seamless_rotate
|
|
47
|
-
preopen_indexes unlink_old attr_flush_period ondisk_dict_default
|
|
48
|
-
max_packet_size mva_updates_pool crash_log_path max_filters
|
|
49
|
-
max_filter_values )
|
|
50
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
51
|
-
|
|
52
|
-
settings.each do |setting|
|
|
53
|
-
searchd.should respond_to(setting.to_sym)
|
|
54
|
-
searchd.should respond_to("#{setting}=".to_sym)
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
it "should support setting listen to a port number" do
|
|
59
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
60
|
-
searchd.port = 3312
|
|
61
|
-
searchd.pid_file = "file.pid"
|
|
62
|
-
searchd.listen = 3312
|
|
63
|
-
|
|
64
|
-
if Riddle.loaded_version.to_f >= 0.9
|
|
65
|
-
searchd.render.should == <<-SEARCHD
|
|
66
|
-
searchd
|
|
67
|
-
{
|
|
68
|
-
listen = 3312
|
|
69
|
-
pid_file = file.pid
|
|
70
|
-
}
|
|
71
|
-
SEARCHD
|
|
72
|
-
else
|
|
73
|
-
searchd.render.should == <<-SEARCHD
|
|
74
|
-
searchd
|
|
75
|
-
{
|
|
76
|
-
port = 3312
|
|
77
|
-
pid_file = file.pid
|
|
78
|
-
}
|
|
79
|
-
SEARCHD
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
it "should render a correct configuration with valid settings" do
|
|
84
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
85
|
-
searchd.port = 3312
|
|
86
|
-
searchd.pid_file = "file.pid"
|
|
87
|
-
|
|
88
|
-
if Riddle.loaded_version.to_f >= 0.9
|
|
89
|
-
searchd.render.should == <<-SEARCHD
|
|
90
|
-
searchd
|
|
91
|
-
{
|
|
92
|
-
listen = 3312
|
|
93
|
-
pid_file = file.pid
|
|
94
|
-
}
|
|
95
|
-
SEARCHD
|
|
96
|
-
else
|
|
97
|
-
searchd.render.should == <<-SEARCHD
|
|
98
|
-
searchd
|
|
99
|
-
{
|
|
100
|
-
port = 3312
|
|
101
|
-
pid_file = file.pid
|
|
102
|
-
}
|
|
103
|
-
SEARCHD
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
it "should render with a client key if one is provided" do
|
|
108
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
109
|
-
searchd.port = 3312
|
|
110
|
-
searchd.pid_file = 'file.pid'
|
|
111
|
-
searchd.client_key = 'secret'
|
|
112
|
-
|
|
113
|
-
if Riddle.loaded_version.to_f >= 0.9
|
|
114
|
-
searchd.render.should == <<-SEARCHD
|
|
115
|
-
searchd
|
|
116
|
-
{
|
|
117
|
-
listen = 3312
|
|
118
|
-
pid_file = file.pid
|
|
119
|
-
client_key = secret
|
|
120
|
-
}
|
|
121
|
-
SEARCHD
|
|
122
|
-
else
|
|
123
|
-
searchd.render.should == <<-SEARCHD
|
|
124
|
-
searchd
|
|
125
|
-
{
|
|
126
|
-
port = 3312
|
|
127
|
-
pid_file = file.pid
|
|
128
|
-
client_key = secret
|
|
129
|
-
}
|
|
130
|
-
SEARCHD
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
if Riddle.loaded_version.to_f >= 0.9
|
|
135
|
-
it "should render with mysql41 on the default port if true" do
|
|
136
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
137
|
-
searchd.mysql41 = true
|
|
138
|
-
searchd.pid_file = 'file.pid'
|
|
139
|
-
|
|
140
|
-
searchd.render.should == <<-SEARCHD
|
|
141
|
-
searchd
|
|
142
|
-
{
|
|
143
|
-
listen = 9306:mysql41
|
|
144
|
-
pid_file = file.pid
|
|
145
|
-
}
|
|
146
|
-
SEARCHD
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
it "should render with mysql41 on a given port" do
|
|
150
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
151
|
-
searchd.mysql41 = 9307
|
|
152
|
-
searchd.pid_file = 'file.pid'
|
|
153
|
-
|
|
154
|
-
searchd.render.should == <<-SEARCHD
|
|
155
|
-
searchd
|
|
156
|
-
{
|
|
157
|
-
listen = 9307:mysql41
|
|
158
|
-
pid_file = file.pid
|
|
159
|
-
}
|
|
160
|
-
SEARCHD
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
it "allows for both normal and mysql41 connections" do
|
|
164
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
165
|
-
searchd.mysql41 = true
|
|
166
|
-
searchd.port = 9312
|
|
167
|
-
searchd.pid_file = 'file.pid'
|
|
168
|
-
|
|
169
|
-
searchd.render.should == <<-SEARCHD
|
|
170
|
-
searchd
|
|
171
|
-
{
|
|
172
|
-
listen = 9312
|
|
173
|
-
listen = 9306:mysql41
|
|
174
|
-
pid_file = file.pid
|
|
175
|
-
}
|
|
176
|
-
SEARCHD
|
|
177
|
-
end
|
|
178
|
-
|
|
179
|
-
it "uses given address for mysql41 connections" do
|
|
180
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
181
|
-
searchd.mysql41 = true
|
|
182
|
-
searchd.address = '127.0.0.1'
|
|
183
|
-
searchd.pid_file = 'file.pid'
|
|
184
|
-
|
|
185
|
-
searchd.render.should == <<-SEARCHD
|
|
186
|
-
searchd
|
|
187
|
-
{
|
|
188
|
-
listen = 127.0.0.1:9306:mysql41
|
|
189
|
-
pid_file = file.pid
|
|
190
|
-
}
|
|
191
|
-
SEARCHD
|
|
192
|
-
end
|
|
193
|
-
|
|
194
|
-
it "applies the given address to both normal and mysql41 connections" do
|
|
195
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
196
|
-
searchd.mysql41 = true
|
|
197
|
-
searchd.port = 9312
|
|
198
|
-
searchd.address = 'sphinx.server.local'
|
|
199
|
-
searchd.pid_file = 'file.pid'
|
|
200
|
-
|
|
201
|
-
searchd.render.should == <<-SEARCHD
|
|
202
|
-
searchd
|
|
203
|
-
{
|
|
204
|
-
listen = sphinx.server.local:9312
|
|
205
|
-
listen = sphinx.server.local:9306:mysql41
|
|
206
|
-
pid_file = file.pid
|
|
207
|
-
}
|
|
208
|
-
SEARCHD
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
it 'maintains the address and port settings without rendering them' do
|
|
212
|
-
searchd = Riddle::Configuration::Searchd.new
|
|
213
|
-
searchd.port = 9312
|
|
214
|
-
searchd.address = 'sphinx.server.local'
|
|
215
|
-
searchd.pid_file = 'file.pid'
|
|
216
|
-
|
|
217
|
-
searchd.render.should == <<-SEARCHD
|
|
218
|
-
searchd
|
|
219
|
-
{
|
|
220
|
-
listen = sphinx.server.local:9312
|
|
221
|
-
pid_file = file.pid
|
|
222
|
-
}
|
|
223
|
-
SEARCHD
|
|
224
|
-
searchd.address.should == 'sphinx.server.local'
|
|
225
|
-
searchd.port.should == 9312
|
|
226
|
-
end
|
|
227
|
-
end
|
|
228
|
-
end
|