如何通过Logstast和使用分析仪将数据传输到Elastic中?

时间:2018-08-30 08:45:49

标签: elasticsearch logstash

我下面有一个logstash配置文件。 Elastic正在将我的数据读取为a b,在这里我想将其读取为ab,我发现我需要为not_analyzed使用sscat进行归档, max_shingle_sizemin_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" }
            }
        }

    }'

1 个答案:

答案 0 :(得分:0)

在创建映射时,可以使用“ ignore_above:”和“ not_analyzed ”来限制最大长度,以使文本不会被分析。 将类型声明为关键字而不是文本将是您的另一种选择。 关于带有logstash的连接模板,为什么需要它?在elasticsearch上创建模板后,就可以创建索引,该索引将遵循创建的模板定义,然后可以开始建立索引。