ElasticSearch Rest风格操作(二)文档操作
1、基本操作
1.1、添加数据
PUT /kuangshen/user/1
{
"name":"狂神说",
"age":23,
"desc":"一顿操作猛如虎,一看工资2500",
"tags":["技术宅","暖男","直男"]
}
1.2、获取数据 GET
GET kuangshen/user/1
1.3、更新数据 PUT
PUT /kuangshen/user/3
{
"name":"李四233",
"age":30,
"desc":"mmp,不知道如何形容",
"tags":["靓女","旅游","唱歌"]
}
1.4、更新数据 POSt _update,推荐使用
POST /kuangshen/user/1/_update
{
"doc":{
"name":"好先生"
}
}
1.5、简单搜索
GET kuangshen/user/_search?q=name:好先生
2、高级操作
2.1、基本查询
GET kuangshen/user/_search
{
"query":{
"match":{
"name":"先生"
}
}
}
2.2、结果过滤
GET kuangshen/user/_search
{
"query":{
"match":{
"name":"先生"
}
},
"_source": ["name","desc"]
}
2.3、排序
GET kuangshen/user/_search
{
"query":{
"match":{
"name":"先生"
}
},
"sort": [
{
"age": {
"order": "desc"
}
}
]
}
2.4、分页
GET kuangshen/user/_search
{
"query":{
"match":{
"name":"先生"
}
},
"sort": [
{
"age": {
"order": "desc"
}
}
],
"from": 0,
"size":1
}
2.5、多条件查询
must (and)
GET kuangshen/user/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "先生"
}
},{
"match": {
"age": 23
}
}
]
}
}
}
should (or)
GET kuangshen/user/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"name": "先生"
}
},{
"match": {
"age": 23
}
}
]
}
}
}
must_not (not)
GET kuangshen/user/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"age": 23
}
}
]
}
}
}
filter (过滤器)
GET kuangshen/user/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "先生"
}
}
],
"filter": [
{
"range": {
"age": {
"gte": 10
}
}
}
]
}
}
}
2.6、多条件匹配
GET kuangshen/user/_search
{
"query": {
"match": {
"tags":"男 技术"
}
}
}
2.7、精准查询
注意: keyword字段类型不会被分词器解析
GET kuangshen/user/_search
{
"query": {
"term": {
"name":"先"
}
}
}
多条件查询
GET kuangshen/user/_search
{
"query": {
"bool": {
"should": [
{
"term": {
"name": {
"value": "好"
}
}
},{
"term": {
"tags": {
"value": "技术"
}
}
}
]
}
}
}
2.7、高亮查询
GET kuangshen/user/_search
{
"query": {
"match": {
"name": "先生"
}
},
"highlight": {
"fields": {
"name":{}
}
}
}
自定义高亮标签
GET kuangshen/user/_search
{
"query": {
"match": {
"name": "先生"
}
},
"highlight": {
"pre_tags": "<p class='key'>",
"post_tags": "</p>",
"fields": {
"name":{}
}
}
}
特别鸣谢:狂神说Java