在Elasticsearch中将字符串的默认映射更改为“未分析”
在我的系统中,数据插入始终是通过logstash通过csv文件完成的。我从未预定义映射。但每当我输入它总是被一个字符串是analyzed
,其结果就像一个条目hello
I am
Sinha被分为hello
,I
,am
,Sinha
。无论如何,我是否可以更改elasticsearch的默认/动态映射,以便所有字符串(无论索引如何,无论类型如何)都被视为not
analyzed?还是有一种在.conf
文件中设置它的方法?说我的conf
档案看起来像
input { file {
path => "/home/sagnik/work/logstash-1.4.2/bin/promosms_dec15.csv"
type => "promosms_dec15"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
columns => ["Comm_Plan","Queue_Booking","Order_Reference","Multi_Ordertype"]
separator => ","
}
ruby {
code => "event['Generation_Date'] = Date.parse(event['Generation_Date']);"
}
}
output {
elasticsearch {
action => "index"
host => "localhost"
index => "promosms-%{+dd.MM.YYYY}"
workers => 1
}
}
我希望所有的字符串都是这样not analyzed
,我也不介意将其作为所有将来的数据插入elasticsearch的默认设置
回答:
您可以查询.raw
字段的版本。这是在Logstash
1.3.1中添加的:
我们提供的logstash索引模板会为您索引的每个字段添加一个“ .raw”字段。Logstash将这些“ .raw”字段设置为“
not_analyzed”,因此不会进行任何分析或标记化-我们的原始值保持不变!
因此,如果您的字段称为foo
,则会查询foo.raw
返回not_analyzed
(未在定界符上拆分)版本。
以上是 在Elasticsearch中将字符串的默认映射更改为“未分析” 的全部内容, 来源链接: utcz.com/qa/397837.html