mirror of
https://github.com/elastic/logstash.git
synced 2025-04-23 22:27:21 -04:00
Add tests to ensure correct behavior of elasticsearch with our new
template settings. Some of these tests fail at this time because our template is incorrect. The template will be fixed shortly.
This commit is contained in:
parent
0f00484fa2
commit
9a1b17efcd
1 changed files with 67 additions and 0 deletions
|
@ -158,4 +158,71 @@ describe "outputs/elasticsearch_http" do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "index template expected behavior" do
|
||||
subject do
|
||||
require "logstash/outputs/elasticsearch_http"
|
||||
settings = {
|
||||
"manage_template" => true,
|
||||
"template_overwrite" => true,
|
||||
"host" => "localhost"
|
||||
}
|
||||
Elasticsearch::Client.new.indices.delete_template(:name => "*")
|
||||
output = LogStash::Outputs::ElasticSearchHTTP.new(settings)
|
||||
output.register
|
||||
next output
|
||||
end
|
||||
|
||||
before :each do
|
||||
require "elasticsearch"
|
||||
@es = Elasticsearch::Client.new
|
||||
@es.indices.delete
|
||||
|
||||
subject.receive(LogStash::Event.new("message" => "sample message here"))
|
||||
subject.receive(LogStash::Event.new("somevalue" => 100))
|
||||
subject.receive(LogStash::Event.new("somevalue" => 10))
|
||||
subject.receive(LogStash::Event.new("somevalue" => 1))
|
||||
subject.receive(LogStash::Event.new("geoip" => { "location" => [ 0.0, 0.0 ] }))
|
||||
subject.buffer_flush(:final => true)
|
||||
@es.indices.flush
|
||||
|
||||
# Wait or fail until everything's indexed.
|
||||
Stud::try(10.times) do
|
||||
r = @es.search
|
||||
insist { r["hits"]["total"] } == 5
|
||||
end
|
||||
end
|
||||
|
||||
it "permits phrase searching on string fields" do
|
||||
results = @es.search(:q => "message:\"sample message\"")
|
||||
insist { results["hits"]["total"] } == 1
|
||||
insist { results["hits"]["hits"][0]["_source"]["message"] } == "sample message here"
|
||||
end
|
||||
|
||||
it "numbers dynamically map to a numeric type and permit range queries" do
|
||||
results = @es.search(:q => "somevalue:[5 TO 105]")
|
||||
insist { results["hits"]["total"] } == 2
|
||||
|
||||
values = results["hits"]["hits"].collect { |r| r["_source"]["somevalue"] }
|
||||
insist { values }.include?(10)
|
||||
insist { values }.include?(100)
|
||||
reject { values }.include?(1)
|
||||
end
|
||||
|
||||
it "creates .raw field fro any string field which is not_analyzed" do
|
||||
results = @es.search(:q => "message.raw:\"sample message here\"")
|
||||
insist { results["hits"]["total"] } == 1
|
||||
insist { results["hits"]["hits"][0]["_source"]["message"] } == "sample message here"
|
||||
|
||||
# partial or terms should not work.
|
||||
results = @es.search(:q => "message.raw:\"sample\"")
|
||||
insist { results["hits"]["total"] } == 0
|
||||
end
|
||||
|
||||
it "make [geoip][location] a geo_point" do
|
||||
results = @es.search(:body => { "filter" => { "geo_distance" => { "distance" => "1000km", "geoip.location" => { "lat" => 0.5, "long" => 0.5 } } } })
|
||||
insist { results["hits"]["total"] } == 1
|
||||
insist { results["hits"]["hits"][0]["_source"]["geoip"]["location"] } == [ 0.0, 0.0 ]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue