在我的系统中,数据的插入总是通过logstash通过csv文件完成.我从未预先定义映射.但每当我输入一个字符串,它总是被认为是analyzed
,作为结果的条目一样hello I am Sinha
被分为hello
,I
,am
,Sinha
.无论如何我可以更改elasticsearch的默认/动态映射,以便所有字符串,无论索引如何,无论类型如何都被认为是not analyzed
?或者有没有办法在.conf
文件中设置它?说我的conf
文件看起来像
input {
file {
path => "/home/sagnik/work/logstash-1.4.2/bin/promosms_dec15.csv"
type => "promosms_dec15"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
columns => ["Comm_Plan","Queue_Booking","Order_Reference","Multi_Ordertype"]
separator => ","
}
ruby {
code => "event['Generation_Date'] = Date.parse(event['Generation_Date']);"
}
}
output {
elasticsearch {
action => "index"
host => "localhost"
index => "promosms-%{+dd.MM.YYYY}"
workers => 1
}
}
Run Code Online (Sandbox Code Playgroud)
我想要所有的字符串 …
我正在尝试通过logstash将数据从csv文件提供给elasticsearch.这些csv文件包含第一行作为列名.在解析文件时是否有任何特定方法可以跳过该行?是否有任何我可以使用的条件/过滤器,如果出现异常,它会跳到下一行?
我的配置文件看起来像:
input {
file {
path => "/home/sagnik/work/logstash-1.4.2/bin/promosms_dec15.csv"
type => "promosms_dec15"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
columns => ["Comm_Plan","Queue_Booking","Order_Reference","Generation_Date"]
separator => ","
}
ruby {
code => "event['Generation_Date'] = Date.parse(event['Generation_Date']);"
}
}
output {
elasticsearch {
action => "index"
host => "localhost"
index => "promosms-%{+dd.MM.YYYY}"
workers => 1
}
}
Run Code Online (Sandbox Code Playgroud)
我的csv文件的前几行看起来像
"Comm_Plan","Queue_Booking","Order_Reference","Generation_Date"
"","No","FMN1191MVHV","31/03/2014"
"","No","FMN1191N64G","31/03/2014"
"","No","FMN1192OPMY","31/03/2014"
Run Code Online (Sandbox Code Playgroud)
无论如何我可以跳过第一行吗?此外,如果我的csv文件以新行结尾,其中没有任何内容,那么我也会收到错误.如果它们位于文件末尾或者如果thre是2行之间的空行,我如何跳过这些新行?