首页 > 解决方案 > 如何通过 logstast 和使用分析器将数据传输到弹性?

问题描述

我在下面有一个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" }
            }
        }

    }'

标签: elasticsearchlogstash

解决方案


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


推荐阅读