gpt4 book ai didi

elasticsearch - elasticsearch 中的默认索引分析器

转载 作者:行者123 更新时间:2023-11-29 02:43:56 28 4
gpt4 key购买 nike

我在使用 elasticsearch 时遇到了一个问题,我不想让我的索引词被分析。但是 elasticsearch 有一些默认设置,可以在空间上标记它。因此,我的方面查询没有返回我想要的结果。

我读到索引类型属性中的 "index": "not_analyzed" 应该有效。但问题是我事先不知道我的文档结构。我会在不知道表结构的情况下将随机 MySQL 数据库索引到 elasticsearch。

我如何设置 elasticsearch,使其默认使用 "index": "not_analyzed" 除非另有要求。谢谢

PS:我正在使用 java,如果我可以直接使用它的任何 API,我会喜欢它。

最佳答案

我会使用动态模板 - 它应该可以满足您的需求:

{
"testtemplates" : {
"dynamic_templates" : [
{
"template1" : {
"match" : "*",
"match_mapping_type" : "string",
"mapping" : {
"type" : "string",
"index" : "not_analyzed"
}
}
}
]
}
}

这里有更多关于这种方法的信息:

https://www.elastic.co/guide/en/elasticsearch/guide/current/custom-dynamic-mapping.html#dynamic-templates

重要:如果有人建议用这种方法来解决 not_analyzed 问题,那是行不通的!keyword 分析器对数据进行一些分析,并将数据转换为小写字母。

例如数据:ElasticSearchRocks ==> 关键字分析器:elasticsearchrocks

自己尝试分析查询并观察它的发生。

curl -XPUT localhost:9200/testindex -d '{
"index" : {
"analysis" : {
"analyzer" : {
"default" : {
"type" : "keyword"
}
}
}
}
}'

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-keyword-analyzer.html

关于elasticsearch - elasticsearch 中的默认索引分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23366602/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com