elasticsearch - 如何通过 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" }
}
}
}'
解决方案
您可以在创建映射时使用“ ignore_above: ”和“ not_analyzed ”来限制最大长度,这样文本就不会被分析。将类型声明为关键字而不是文本将是您的另一种选择。关于与logstash的连接模板,为什么需要这个?在 elasticsearch 上创建模板后,您可以创建索引,该索引将遵循创建的模板定义,您可以开始索引。
推荐阅读
- azure - 我们可以在不使用 Azure Active Directory 的情况下在 Azure 中配置 SSO(单点登录)吗?
- java - 尝试在开源 Conversations 应用程序上使用 gradle 运行 SonarScanner
- arrays - 在以下情况下,对数组进行排序所需的最小操作数是多少:-
- ruby-on-rails - 如何根据参数连接不同的表
- android - android简单的JSON有效负载到websocket
- angular - 输入'{文本:字符串;}' 不可分配给类型“TitleObject”。在高图表中
- javascript - MOUSEOVER:如何启动一个函数并让它一直播放到最后而不一遍又一遍地启动它?
- php - 使用 WriteHTML 函数时的 mPDF 分页问题
- snowflake-cloud-data-platform - 如何根据 Snowflake 中先前查询的结果提交/回滚事务?
- android - 如何通过android管理API调整语言和时间设置