elasticsearch,kibana,Amazon Web Services,elasticsearch,Kibana" /> elasticsearch,kibana,Amazon Web Services,elasticsearch,Kibana" />

Amazon web services 如何在ElasticSearch中使用通配符以多种方式索引同一字段

Amazon web services 如何在ElasticSearch中使用通配符以多种方式索引同一字段,amazon-web-services,elasticsearch,kibana,Amazon Web Services,elasticsearch,Kibana,我有以下字段(“名称”)的映射: 它可以很好地工作,并允许作为文本和关键字进行搜索。 根据ES文件: 字符串字段可以映射为全文搜索的文本字段,也可以映射为排序或聚合的关键字字段 但我正在尝试扩展此映射,以支持通配符搜索 我试图修改映射(如下图所示),但无法使其工作 "name": { "analyzer": "ngram_analyzer", &qu

我有以下字段(“名称”)的映射:

它可以很好地工作,并允许作为文本和关键字进行搜索。 根据ES文件:

字符串字段可以映射为全文搜索的文本字段,也可以映射为排序或聚合的关键字字段

但我正在尝试扩展此映射,以支持通配符搜索

我试图修改映射(如下图所示),但无法使其工作

            "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"
          }
        }
      }
    }
  }
}