Elasticsearch中的默认索引分析器
我在Elasticsearch上遇到问题,我不希望对索引项进行分析。但是elasticsearch有一些默认设置,可以在空间上标记它。因此,我的方面查询未返回我想要的结果。
我读到"index" :
"not_analyzed"索引类型的属性应该工作。但是问题是我事先不知道我的文档结构。我会在不知道表结构的情况下将随机MySQL数据库索引到elasticsearch。
我如何设置elasticsearch,使其默认情况下会"index" : "not_analyzed"
一直使用,除非另有要求。谢谢
PS:如果我可以直接使用任何API,我会使用Java。
回答:
我会使用动态模板-它应该可以满足您的需求:
{ "testtemplates" : {
"dynamic_templates" : [
{
"template1" : {
"match" : "*",
"match_mapping_type" : "string",
"mapping" : {
"type" : "string",
"index" : "not_analyzed"
}
}
}
]
}
}
有关此方法的更多信息,请参见:
https://www.elastic.co/guide/zh-CN/elasticsearch/guide/current/custom-
dynamic-mapping.html#dynamic-
templates
如果有人建议采用这种方法来解决 not_analyzed 问题,那么它将行不通! 关键字
分析器会对数据进行一些分析,然后将数据转换为小写字母。
例如 Data: ElasticSearchRocks ==> Keyword Analyzer: elasticsearchrocks
自己尝试分析查询,看看它正在发生。
curl -XPUT localhost:9200/testindex -d '{ "index" : {
"analysis" : {
"analyzer" : {
"default" : {
"type" : "keyword"
}
}
}
}
}'
http://www.elasticsearch.org/guide/zh-
CN/elasticsearch/reference/current/analysis-keyword-
analyzer.html
以上是 Elasticsearch中的默认索引分析器 的全部内容, 来源链接: utcz.com/qa/413510.html