一、基于Restful风格

基于这类风格涉及的软件可以更简洁,更有层次,更易于实现缓存等机制。

基本Rest命令说明:

ES java 创建索引会被覆盖嘛 es7创建索引_高亮

二、索引的基本操作

  1. 创建一个索引:
PUT /索引名/类型名/文档id
{请求体}

这样就完成了索引和文档的自动增加,数据也成功添加。

ES java 创建索引会被覆盖嘛 es7创建索引_elasticsearch_02

  1. 字段自动指定类型,或者也手动设置类型。
  2. 创建时指定字段类型
  3. 通过GET _cat/indices?v查看所有索引库的信息。
  4. 删除索引,通过delete命令实现删除,根据你的请求来判断是删除索引还是文档记录!

三、文档的基本操作

  1. 添加文档记录
  2. 获取文档记录 get
  3. 更新文档记录
    旧方法:PUT

    新方法:POST _update 推荐使用!
  4. 简单条件搜索
    使用_seach?q=name:王老,根据默认的映射规则,产生基本的查询!
    命中结果中的_score为匹配度,匹配度越高,分值越高,排越前!
  5. 复杂条件搜索select(排序,分页,高亮,模糊,精准)
    查询的参数体使用JSON结构!输出结果有匹配总数,最高匹配度等。

    指定输出的字段:

    针对某个字段进行排序:

    分页查询:from:起始,size:查询总数

    布尔查询:
    must(即and),所有条件都要符合 where id=1 and name=xxx

    should(即or),所有条件都要符合 where id = 1 or name = xx

    must_not(即not),所有条件满足 where id is not null

    过滤器filter,对数据进行过滤
gt:大于 gte:大于等于 lt:小于 lte:小于等于

ES java 创建索引会被覆盖嘛 es7创建索引_elasticsearch_03


匹配多个条件:

通过tags输入多个条件,用空格隔开。结果按照匹配度排序。

ES java 创建索引会被覆盖嘛 es7创建索引_搜索_04


精确查询 :

**term查询:**直接通过倒排索引指定的词条进行精确查询!(完全匹配)

**match查询:**会使用分词器解析!(先分析文档,然后在通过分析的文档进行查询)

GET testdb/_search
{
	"query":{
		"term":{
			"desc": "我喜欢吃冰淇淋"
		}
	}
}

多值匹配精确查询:

GET testdb/_search
{
	"query":{
		"bool":{
			"should":[
				{
					"term":{
						"desc": "我喜欢吃冰淇淋"
					}
				},
				{
					"term":{
						"name": "我喜欢吃冰淇淋"
					}
				}
			]
		}
	}
}

高亮查询:

GET testdb/user/_search
{
	"query":{
		"match":{
			"desc": "我喜欢吃冰淇淋"
		}
	},
	"highlight":{
		"pre_tags":"<p class='key' style='color:red'>",   自定义高亮标签
		"post_tags":"</p>",
		"fields":{
			"name":{}
		}
	}
}