一、elasticsearch的简单查询
1.term精确查询
POST /student2/_search
{
"query": {
"term": {
"sex": {
"value": "女"
}
}
}
}
2.terms 多值精确查询
POST /student2/_search
{
"query": {
"terms": {
"sex": [
"男",
"女"
]
}
}
}
3.match分词查询
POST /student2/_search
{
"query": {
"match": {
"info": "上海工作自信"
}
}
}
4.multi_match多字段分词查询
POST /student2/_search
{
"query": {
"multi_match": {
"query": "张三工作主动性",
"fields": ["name","info"]
}
}
}
5.match_phrase 短语搜索
POST /student2/_search
{
"query": {
"match_phrase": {
"info": "善于沟通谦虚自信"
}
}
}
6.范围查询
POST /student2/_search
{
"query": {
"range": {
"age": {
"gte": 10,
"lte": 20
}
}
}
}
7.IP类型查询
POST /student2/_doc
{
"ip":"192.168.0.8",
"age":10,
"info":"OKOKOK",
"name":"中文名2",
"sex":10
}
GET /student2/_search
{
"query": {
"term": {
"ip":{
"value": "192.168.0.5"
}
}
}
}
GET /student2/_search
{
"query": {
"range": {
"ip": {
"gte": "192.168.0.1",
"lte": "192.168.0.6"
}
}
}
}
8.坐标查询
POST /student2/_doc/
{
"name": "广州公园前",
"addr": "23.131479, 113.270719"
}
POST /student2/_doc/
{
"name": "广百百货",
"addr": "23.129881, 113.274646"
}
POST /student2/_doc/
{
"name": "广州市妇幼医院",
"addr": "23.129785, 113.260777"
}
POST /student2/_doc/
{
"name": "广州市银河烈士陵园",
"addr": "23.168615, 113.343607"
}
GET /student2/_search
{
"query": {
"bool": {
"must": [
{
"match_all": {}
}
],
"filter": {
"geo_distance": {
"distance": "1km",
"addr": {
"lat": 23.131304,
"lon": 113.262402
}
}
}
}
},
"sort": [
{
"_geo_distance": {
"unit": "m",
"addr": {
"lat": 23.131304,
"lon": 113.262402
},
"order": "asc"
}
}
],
"script_fields": {
"distance": {
"script": {
"params": {
"lat": 23.131304,
"lon": 113.262402
},
"source": "doc['addr'].arcDistance(params.lat, params.lon)"
}
}
}
}