es的字段类型:
keyword:存储数据时,不会分词建立索引;
text:存储数据时,会自动分词,并生成索引;
下面创建一个名词为testindex的索引库,并添加四个字段,分别指定不同的字段类型。
PUT /testindex
{
"mappings": {
"properties": {
"name":{
"type": "text"
},
"age":{
"type": "long"
},
"actiontime":{
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"describe":{
"type": "keyword"
}
}
}
}
执行结果:
查询下刚才创建的索引库信息。
插入一条记录:
PUT /testindex/_doc/1
{
"name":"张三",
"age":30,
"actiontime":"2021-09-16 22:30:45",
"describe":"描述信息"
}
执行结果:
查询下刚才插入的记录:
如果设置了字段的类型,那么在插入记录时就要按照字段格式插入,不然会报错,如下所示,日期格式的字段,插入数字类型就会报错:
往索引库中加几条记录,用于查询。
查询name中含有"张"的信息:
可以看到name中含有“张”的记录都被查询出来了,说明name字段是做了分词的,同时也证明text类型是会自动分词的。
下面再查询下describe字段,查询describe中含有“描述”二字的记录:
没有查询到记录,再查询下describe为“描述信息”的记录:
发现有一条记录被查询出来,这也说明了keyword类型是完全匹配,没有分词。