索引和映射:
//创建索引
PUT /my-test
//查看索引信息
GET /my-test
//查看索引是否存在
HEAD /my-test
//打开关闭
POST /my-test/_close
POST /my-test/_open
//删除
DELETE /my-test
//创建索引和映射
PUT /my-test
{
"mappings": {
"properties": {
"name":{
"type": "text",
"analyzer": "ik_max_word"
},
"logo":{
"type": "keyword",
"index": false
},
"payment":{
"type": "float"
}
}
}
}
//修改索引映射(只能增加字段,其他修改只能删除索引重新建立)
PUT /my-test/_mapping
{
"properties": {
"address":{
"type": "text",
"analyzer": "ik_max_word"
}
}
}
//查看映射
GET /my-test/_mapping
映射类型:
1) type String 类型,又分两种: text:可分词,不可参与聚合 keyword:不可分词,数据会作为完整字段进行匹配,可以参与聚合 Numerical :数值类型,分两类 基本数据类型:long 、 interger 、 short 、 byte 、 double 、 flfloat 、 half_flfloat 浮点数的高精度类型:scaled_flfloat 需要指定一个精度因子,比如10 或 100 。 elasticsearch 会把真实值乘以这个因子后存 储,取出时再还原。 Date :日期类型 elasticsearch可以对日期格式化为字符串存储,但是建议我们存储为毫秒值,存储为 long,节省空间。 Array :数组类型 进行匹配时,任意一个元素满足,都认为满足 排序时,如果升序则用数组中的最小值来排序,如果降序则用数组中的最大值来排序 2 ) indextrue:字段会被索引,则可以用来进行搜索。默认值就是true
false :字段不会被索引,不能用来搜索 3 ) store 是否将数据进行独立存储。 原始的文本会存储在 _source 里面,store:true来独立存储,要比从_source中解析快得多,但是也会占用更多的空间,所以要根据实际业务需求来设置, 默认为false。 4 ) analyzer :指定分词器 一般我们处理中文会选择ik 分词器 ik_max_word ik_smart
文档:即数据
//插入数据
POST /my-test/_doc/1
{
"name":"张三",
"logo":"www.baidu.com",
"payment":30000
}
POST /my-test/_doc/2
{
"name":"李四",
"logo":"www.baidu.com",
"payment":30000
}
//查找
GET /my-test/_doc/1
//查找所有
GET /my-test/_search
POST /my-test/_search
POST /my-test/_search
{
"query": {
"match_all": {}
}
}
//按id查找,返回指定字段
GET /my-test/_doc/1?_source=name,logo
//更新
POST /my-test/_update/1
{
"doc": {
"name":"张三"
}
}
//删除
DELETE /my-test/_doc/1
//按条件删除
POST /my-test/_delete_by_query
{
"query": {
"match": {
"name":"李四"
}
}
}
//全部删除
POST /my-test/_delete_by_query
{
"query": {
"match_all": {}
}
}
Query DSL:
//分词后使用or查询
GET /my-test/_search
{
"query": {
"match": {
"name": "小米电视4A"
}
}
}
//分词后使用and查询
GET /my-test/_search
{
"query": {
"match": {
"name": {
"query": "小米电视4A",
"operator": "and"
}
}
}
}
//短语查询,最小须满足此短语
GET /my-test/_search
{
"query": {
"match_phrase": {
"name": "小米电视"
}
}
}
//query_string可以不指定字段查询,也可指定一个或多个字段
GET /my-test/_search
{
"query": {
"query_string": {
"query": "小米电视"
}
}
}
GET /my-test/_search
{
"query": {
"query_string": {
"default_field":"name",
"query": "小米电视"
}
}
}
//注意: AND大写,否则不生效
GET /my-test/_search
{
"query": {
"query_string": {
"default_field": "name",
"query": "小米 AND 华为"
}
}
}
GET /my-test/_search
{
"query": {
"query_string": {
"fields":["name","urlA"],
"query": "小米电视"
}
}
}



