ElasticSearch学习总结

1、es的tcp端口9200和9300区别


9200:es节点与外部通讯使用
9300: es节点之间内部使用


2、乐观锁与悲观锁


乐观锁不会阻塞线程,悲观锁会。

3、查看es的分词器如何分词


一般es默认的分词器对中文分词不友好,会把一个词语分词成单独的一个汉字。可以安装分词器插件,例如"ik_smart"。
查看分词器是怎么分词的,可以使用如下接口调用:
curl -H "Content-Type: application/json" "用户名密码和ip信息:9200/_analyze" -d'
{
    "analyzer":"standard",    //分词器名称,可以是"ik_smart"
    "text":"中华人民共和国"
}'

4、ElasticSearch存储的数据结构

        ElasticSearch是文件存储,一条数据就是一个文档。文档是JSON格式。

5、ElasticSearch与关系数据库概念映射

ElasticSearch索引(Index)类型(Type)文档(Documents)字段(Fields)
关系数据库数据库

6、ElasticSearch常用查询curl命令

查询所有index

curl -H "Content-Type: application/json" "用户名密码和ip信息:9200/_cat/indices?v"

该命令后面可加上grep对结果做过滤


删除数据
curl -XPOST -H "Content-Type: application/json" "http://用户名:密码@ip:port/index名称/_delete_by_query?pretty=true" -d'{
    "query": {
        "term": {
            "_id": 1616470622224
        }
    }
}'

curl -XPOST -H "Content-Type: application/json" "http://用户名:密码@ip:port/index名称/_delete_by_query?pretty=true" -d'{
    "query": {
        "match_all": {
            
        }
    }
}'

查询数据
curl -H "Content-Type: application/json" -XPOST "http://用户名:密码@ip:port/index名称/_search?pretty=true" -d'{
    "query": {
        "bool": {
            "must": [{
                "match": {
                    "fieldName": "value"
                }
            }]
        }
    }
}'

更新数据
curl -XPOST "http://用户名:密码@ip:port/index名称/type名称/数据id/_update?pretty=true" -d '{
    "doc": {
        "fieldName": "value"
    }
}'

查询文档映射

curl -H "Content-Type: application/json" "用户名密码和ip信息:9200/index名称/_mapping"

7、文档映射

动态映射:我们知道,在关系数据库中,需要事先创建数据库,然后在该数据库实例下创建数据表,然后才能在该数据表中插入数据。而ElasticSearch中不需要事先定义映射(Mapping),文档写入ElasticeSearch时,会根据文档字段自动识别类型,这种机制称之为动态映射。

        其中,数字类型的字段自动映射成long类型

静态映射:在ElasticeSearch中也可以事先定义好映射,包含文档的各个字段及其类型等,这种方式称之为静态映射。

8、String类型的text和keyword区别

text会进行分词查询

keyword不会进行分词查询

        keyword类型的字段,进行模糊匹配查询是不生效的。例如文档里的字段car被定义成了keyword类型,index中car字段的值是“奥迪A4”、“奥迪A6”。这时进行如下查询:

        GET index名称/type名称/_search

        {

                "from":0,

                "size":2,

                  "query":{"match":{"car":"奥迪"}}

        }

        可以发现查询不到结果。但是如果字段被定义成text类型就可以查询到。

9、Term查询和Match查询区别

Term查询不会对字段进行分词查询,会采用精确匹配

Match会根据该字段的分词器,进行分词查询

参考内容:Elasticsearch入门到精通视频教程【免费学习】-学习视频教程-腾讯课堂


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值