elasticsearch
Posted FinnYY
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch相关的知识,希望对你有一定的参考价值。
简称ES: 是一个开源的高扩展的分布式全文搜索引擎 es是面向文档型数据库,一条数据在这里就是一个文档 索引: (数据库) 类型: (表--已删除) 文档: (行) 字段: (列) 倒排索引: 正排索引: //添加索引(新建一个数据库) http://127.0.0.1:9200/goods PUT请求 返回: { "acknowledged": true, "shards_acknowledged": true, "index": "goods" } PUT 两次操作返回结果是一样 POST 两次操作返回结果不是一样 //获取索引 http://127.0.0.1:9200/goods GET请求 { "goods": { "aliases": {}, "mappings": {}, "settings": { "index": { "routing": { "allocation": { "include": { "_tier_preference": "data_content" } } }, "number_of_shards": "1", "provided_name": "goods", "creation_date": "1628603743375", "number_of_replicas": "1", "uuid": "4cDVsU8aQL62iYxlELPM_w", "version": { "created": "7140099" } } } } } //获取所有索引详细信息 http://127.0.0.1:9200/_cat/indices?v //删除索引 http://127.0.0.1:9200/goods DELETE请求 { "acknowledged": true } //添加数据 http://127.0.0.1:9200/goods/_doc/1001 POST请求 (不能用PUT) http://127.0.0.1:9200/goods/_create/1001 POST请求 请求数据: { "title":"小米手机", "category":"小米", "price":"3999.90", } 返回: { "_index": "goods", "_type": "_doc", "_id": "1001", "_version": 1, "result": "created", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 1, "_primary_term": 1 } //查询数据 http://127.0.0.1:9200/goods/_doc/1001 GET { "_index": "goods", "_type": "_doc", "_id": "1001", "_version": 1, "_seq_no": 1, "_primary_term": 1, "found": true, //表示找到了 "_source": { "title": "小米手机", "category": "小米", "price": "3999.90" } } //获取所有文档数据 http://127.0.0.1:9200/goods/_search GET { "took": 23, //耗费时间 毫秒为单位 "timed_out": false, //是否超时 "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 2, "relation": "eq" }, "max_score": 1, "hits": [ { "_index": "goods", "_type": "_doc", "_id": "XgtiMHsBqmDLeiGrn7BB", "_score": 1, "_source": { "title": "小米手机", "category": "小米", "price": "3999.90" } }, { "_index": "goods", "_type": "_doc", "_id": "1001", "_score": 1, "_source": { "title": "小米手机", "category": "小米", "price": "3999.90" } } ] } } //完全覆盖修改 http://127.0.0.1:9200/goods/_doc/1001 PUT 请求: { "title":"小米手机", "category":"小米", "price":"4999.90", } 返回: { "_index": "goods", "_type": "_doc", "_id": "1001", "_version": 2, "result": "updated", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 2, "_primary_term": 1 } //局部覆盖修改 http://127.0.0.1:9200/goods/_update/1001 POST 请求: { "doc":{ "title":"华为手机" } } 返回: { "_index": "goods", "_type": "_doc", "_id": "1001", "_version": 3, "result": "updated", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 3, "_primary_term": 1 } //删除数据 http://127.0.0.1:9200/goods/_doc/1001 DELETE请求 { "_index": "goods", "_type": "_doc", "_id": "1001", "_version": 4, "result": "deleted", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "_seq_no": 4, "_primary_term": 1 } //条件查询(参数放url中) http://127.0.0.1:9200/goods/_search?q=category:小米 { "took": 509, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 1, "relation": "eq" }, "max_score": 0.26706278, "hits": [ { "_index": "goods", "_type": "_doc", "_id": "XgtiMHsBqmDLeiGrn7BB", "_score": 0.26706278, "_source": { "title": "小米手机", "category": "小米", "price": "3999.90" } } ] } } //条件查询-参数放请求体 http://127.0.0.1:9200/goods/_search 请求: { "query":{ "match":{ "category":"小米" } } } 或 全部查询 { "query":{ "match_all":{ } } } 或 多条件查询 { "query":{ "bool":{ "must":[ { "match":{ "category":"小米" }, } ], "filter":{ "range":{ "price":{ "lt" : 5000 } } } } } } 或 完全匹配(不做分词匹配) { "query":{ "match_phrase":{ "category":"小米" } }, "highlight":{ "fields":{ "category":{} } } } 返回: { "took": 0, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 1, "relation": "eq" }, "max_score": 0.5753642, "hits": [ { "_index": "goods", "_type": "_doc", "_id": "XgtiMHsBqmDLeiGrn7BB", "_score": 0.5753642, "_source": { "title": "小米手机", "category": "小米", "price": "3999.90" } } ] } } //映射(其实就是定规则) http://127.0.0.1:9200/user/_mapping PUT 请求: { "properties": { "name": { "type": "text", "index": true }, "sex": { "type": "keyword", "index": true }, "mobile": { "type": "keyword", "index": false } } } text- 文本类型可以被全文检索 keyword -是一个关键字 不可以全文检索 必须精准 index - false 没有索引 不支持查询
以上是关于elasticsearch的主要内容,如果未能解决你的问题,请参考以下文章
使用标准库Ruby将数据标记到Elasticsearch批量中
Elasticsearch:如何在 Elasticsearch 中正确使用同义词功能