es-2-基本概念

1. ES的restful API

  • 请求方式 : get / post / delete / put / head
  • 查询字符串参数 : 一般指用来操作输出结果的参数. (例如”pretty”表示将结果格式化输出为JSON格式,便于阅读).

curl -X<请求方式> ‘<协议>://<IP号>:<端口号>/<路径>?<查询字符串参数>’ -d ‘<查询的JSON请求体>’

比如:查看es中的文档总数:

	##这里的json请求体,不能合并成一个字符串,必须要有换行。
	curl -XGET 'http://localhost:9200/_count?pretty' -H 'content-Type:application/json' -d '
	{
	    "query":{
	        "match_all":{}
	    }
	}'

如果上述命令改为,则会报错:

	curl -XGET 'http://localhost:9200/_count?pretty' -H 'content-Type:application/json' -d '{"query":{"match_all":{}}'

在这里插入图片描述

2. Elasticsearch和MYSQL对应

在这里插入图片描述
类似navicat操作mysql的工具,操作es的客户端,elasticsearch-head点击下载

	#启动命令
	cd elasticsearch-head
	npm install
	npm run start

3. Elasticsearch其他概念

  1. 全文检索:对于非结构化数据,例如,文章、网页、邮件这类不规则的文本数据被叫做全文数据,对它们的检索被称为全文检索
  2. 机构化数据可以通过给数据库加索引(B树),这样就可以通过二分查找等算法来加速;全文检索通过倒排索引的方式来加快索引速度,也就是建立文本内关键字与文本之间的映射关系,然后再通过对这些关键进行常规索引的方式来加速。倒排索引是在将全文添加到全文数据库里时创建的,所以添加的过程会慢一些。
    在这里插入图片描述

    相关的参数:es为了提升性能,文档入库的时候并没有直接创建索引,es每隔1s集中处理一次新加入的文档,可以通过index.refresh_interval

4. Elasticsearch相关度

  1. boolean model:取出所有查询命中的document

  2. TF/IDF:对搜索条件进行分词后,会产生多个term,分别计算每个term对每一个document的分数(后面详细解释)。

  3. vector space model:每个document是一个向量,叫做Document Vector;查询条件也做为一个向量,叫做Query Vector;几个term值向量就是几维。最后按照QV和DV之间的夹角大小(夹角余弦值)从小到大排序,夹角越小相关度越高。

    # 每个term在document所占的权重。
    Document Vector = {weight1, weight2, …… ,weightN}
    
    #每个term在查询条件中所占的权重
    Query Vector = {weight1, weight2, …… , weightN}
    

    在这里插入图片描述

  4. TF/IDF公式
    在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值