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

回到顶部