一文读懂ElasticSearch中字符串keyword和text类型区别
    		       		warning:
    		            这篇文章距离上次修改已过452天,其中的内容可能已经有所变动。
    		        
        		                
                在ElasticSearch中,字符串字段类型keyword和text有明显的区别:
keyword类型是用于索引结构化的字符串数据,比如:邮箱地址、状态码和标签等,它不分析这些文本,并且不将其展平。这意味着当你搜索这些字段时,需要完全匹配。text类型是用于索引全文内容的,比如:邮件正文、产品描述等。ElasticSearch会对这些文本进行分析,包括分词(Tokenizing)、去除停用词(Stop words)、字符串处理等步骤。这些处理让text类型的字段可以支持全文搜索,例如模糊搜索、短语搜索等。
在实际应用中,你可以这样定义一个ElasticSearch映射(Mapping):
{
  "properties": {
    "email": {
      "type": "keyword"
    },
    "content": {
      "type": "text"
    }
  }
}在这个例子中,email字段被定义为keyword类型,这意味着它被用于结构化搜索,而content字段被定义为text类型,这意味着它支持全文搜索。
如果你想对email字段进行全文搜索,那么你需要将其字段类型改为text,然后重新索引数据。相反,如果你想对content字段进行精确匹配搜索,那么你需要将其字段类型改为keyword。
评论已关闭