• day2:利用Elasticsearch来搜索数据


    转自:https://juejin.im/post/6844904030037245959

    【_settings】

     磁盘满了以后,es会自动置为 read_only为True,此时需要运维手动操作开启read_only为False

    curl -H 'Content-Type:application/json' -XPUT 'http://localhost:10290/apollo/_settings' -d '{"index.blocks.read_only_allow_delete":"false"}'

    【_search】

    curl -H "Content-Type:application/json" -XGET "http://127.0.0.1:10290/apollo/_search?pretty" -d '{"ip":xx.xx.xx.xx, 'port':'8000'}'

    or :should
    and: must

    curl -H "Content-Type:application/json" -XGET "http://127.0.0.1:10290/apollo/_search?pretty" -d '{"query":{"bool":{"must":[{"term":{"ip":"x.x.x.x"}},{"term":{"port":"xxx"}},{"bool":{"should":[{"term":{"age":"xxx"}},{"term":{"name":"xxx"}}]}}]}}}'

    {
    	"query": {
    		"bool": {
    			"must": [
    				{
    					"term": {
    						"ip": "x.x.x.x"
    					}
    				},
    				{
    					"term": {
    						"port": "xxx"
    					}
    				},
    				{
    					"bool": {
    						"should": [
    							{
    								"term": {
    									"age": "xxx"
    								}
    							},
    							{
    								"term": {
    									"name": "xxx"
    								}
    							}
    						]
    					}
    				}
    			]
    		}
    	}
    }
    

      

     

    【_count】
    curl -H "Content-Type:application/json" -XGET "http://127.0.0.1:10290/apollo/_count?pretty" -d '{"query":{"bool":{"must":[{"term":{"sex":"男"}}]}}}'

    【_mapping】

    curl -H 'Content-type: application/json' -XGET 'http://localhost:10290/apollo/_mapping?pretty'

    查指定条数文档:

    GET /_search?size=20&pretty


    从第2页开始查:

    GET twitter/_search?size=2&from=2


    查设置:/_settings?pretty'

    查当前index的字段属性映射: _mapping

    查询数据条数:_count

    关闭开启索引: _open/_close Index
    关闭索引后会阻止读写操作,关闭索引会占用大量磁盘空间
    可以通过将 cluster.indices.close.enable 的默认值从 true 更改为 false 来禁用关闭索引功能,以避免发生意外。

    复合查询:

    query--bool--must | filter | must_not | should -- term

    POST _search

    {
    	"query": {
    		"bool": {
    			"must": {
    				"term": {
    					"user": "kimchy"
    				}
    			},
    			"filter": {
    				"term": {
    					"tag": "tech"
    				}
    			},
    			"must_not": {
    				"range": {
    					"age": {
    						"gte": 10,
    						"lte": 20
    					}
    				}
    			},
    			"should": [
    				{
    					"term": {
    						"tag": "wow"
    					}
    				},
    				{
    					"term": {
    						"tag": "elasticsearch"
    					}
    				}
    			],
    			"minimum_should_match": 1,
    			"boost": 1.0
    		}
    	}
    "explain": true
    }
    

     

    字段是否存在:
    字段为空时也不显示
    GET twitter/_search { "query": { "exists": { "field": "city" } } }


    匹配短语:
    匹配不分先后顺序
    1)此处happy 和 birthday 是 或关系
    GET twitter/_search { "query": { "match": { "message": "happy birthday" } } }
    2)与关系:
    GET twitter/_search { "query": { "match": { "message": { "query": "happy birthday", "operator": "and" } } } }
    3)短语中的词至少有两个匹配:
    GET twitter/_search { "query": { "match": { "message": { "query": "happy birthday", "minimum_should_match": 2 } } } }

    4)匹配短句,要求 Happy 必须在 birthday 之前
    GET twitter/_search { "query": { "match_phrase": { "message": "Happy birthday" } }, "highlight": { "fields": { "message": {} } } }


    SQL 查询:
    未成功,后期再试
    GET /_sql/translate { "query": """ SELECT * FROM twitter WHERE age = 30 """ }

    multi-search-api
    通过_msearch终点来实现在一个API请求中做多个查询,对多个index进行同时操作
    GET twitter/_msearch
    {"index":"twitter"}
    {"query":{"match_all":{}},"from":0,"size":1}

    {"index":"twitter"}
    {"query":{"bool":{"filter":{"term":{"city.keyword":"北京"}}}}, "size":1}

    {"index":"twitter1"}
    {"query":{"match_all":{}}}


    可以使用通配符对多个索引同时操作:
    GET twitter*/_search

    GET /twitter,twitter1/_search
    但是
    GET /twitter, twitter1/_search 不行,因为两个索引之间多了一个空格

  • 相关阅读:
    Linux 系统下 “账户管理”
    gulp添加版本号解决缓存问题
    vue3.0的proxy浅析内层绑定原理
    rem用font-size布局与easyui的datagrid通用,出现table不显示
    堆与栈 | 对象深浅拷贝
    vue双向绑定原理值Object.defineProperty
    bootstrap模态框不出,只出现黑色蒙层bug
    Appdelegate 导航操作
    CLLocationManager 位置定位
    导航创建
  • 原文地址:https://www.cnblogs.com/zhanghaibin16/p/13877473.html
Copyright © 2020-2023  润新知