我下面有一个logstash配置文件。 Elastic正在将我的数据读取为a
b
,在这里我想将其读取为ab
,我发现我需要为not_analyzed
使用sscat
进行归档, max_shingle_size
,min_shingle_size
,以使产品获得最佳效果。
我也应该在产品字段中使用not_analyzed
吗?这样会带来更好的结果吗?
我应该如何填写my_id_analyzer
才能在不同字段上实际使用分析仪?
如何将模板与logstash配置文件连接?
input{
file{
path => "path"
start_position =>"beginning"
}
}
filter{
csv{
separator => ","
columns => ["Index", "Category", "Scat", "Sscat", "Products", "Measure", "Price", "Description", "Gst"]
}
mutate{convert => ["Index", "float"] }
mutate{convert => ["Price", "float"] }
mutate{convert => ["Gst", "float"] }
}
output{
elasticsearch{
hosts => "host"
user => "elastic"
password => "pass"
index => "masterdb"
}
}
我还有一个模板,可以对以后上传的所有文件进行处理
curl user:pass host:"host" /_template/logstash-id -XPUT -d '{
"template": "logstash-*",
"settings" : {
"analysis": {
"analyzer": {
"my_id_analyzer"{
}
}
}
}
},
"mappings": {
"properties" : {
"id" : { "type" : "string", "analyzer" : "my_id_analyzer" }
}
}
}'
答案 0 :(得分:0)
在创建映射时,可以使用“ ignore_above:”和“ not_analyzed ”来限制最大长度,以使文本不会被分析。 将类型声明为关键字而不是文本将是您的另一种选择。 关于带有logstash的连接模板,为什么需要它?在elasticsearch上创建模板后,就可以创建索引,该索引将遵循创建的模板定义,然后可以开始建立索引。