У меня есть файл конфигурации 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" }
}
}
}'