Amazon web services 如何在ElasticSearch中使用通配符以多种方式索引同一字段
我有以下字段(“名称”)的映射: 它可以很好地工作,并允许作为文本和关键字进行搜索。 根据ES文件: 字符串字段可以映射为全文搜索的文本字段,也可以映射为排序或聚合的关键字字段 但我正在尝试扩展此映射,以支持通配符搜索 我试图修改映射(如下图所示),但无法使其工作Amazon web services 如何在ElasticSearch中使用通配符以多种方式索引同一字段,amazon-web-services,
elasticsearch,kibana,Amazon Web Services,
elasticsearch,Kibana,我有以下字段(“名称”)的映射: 它可以很好地工作,并允许作为文本和关键字进行搜索。 根据ES文件: 字符串字段可以映射为全文搜索的文本字段,也可以映射为排序或聚合的关键字字段 但我正在尝试扩展此映射,以支持通配符搜索 我试图修改映射(如下图所示),但无法使其工作 "name": { "analyzer": "ngram_analyzer", &qu
"name": {
"analyzer": "ngram_analyzer",
"search_analyzer": "keyword_analyzer",
"type": "text",
"fields": [{
"raw": {
"type": "wildcard"
}
}, {
"type": "keyword"
}]
}
也试过,
"name": {
"analyzer": "ngram_analyzer",
"search_analyzer": "keyword_analyzer",
"type": "text",
"fields": [{
"raw": {
"type": "wildcard"
}
}, {"raw": {
"type": "keyword"
}}]
}
映射应该是什么样的,以允许名称作为文本、关键字和通配符进行搜索。您可以使用多种方式为名称
字段编制索引。修改后的索引映射将被删除
{
"mappings": {
"properties": {
"name": {
"type": "text",
"analyzer": "ngram_analyzer",
"search_analyzer": "keyword_analyzer",
"fields": {
"raw": {
"type": "wildcard"
},
"keyword": {
"type": "keyword"
}
}
}
}
}
}
现在您可以使用
name
进行文本搜索,name.raw
进行通配符搜索,name.keyword
进行关键字搜索@Matt Ryan请查看答案,并告诉我这是否解决了您的问题?@Matt Ryan有任何更新吗?
{
"mappings": {
"properties": {
"name": {
"type": "text",
"analyzer": "ngram_analyzer",
"search_analyzer": "keyword_analyzer",
"fields": {
"raw": {
"type": "wildcard"
},
"keyword": {
"type": "keyword"
}
}
}
}
}
}