Search - 一文入门ElasticSearch(节点、分片、CRUD、倒排索引、分词)
ElasticSearch是非常重要的检索工具,利用分词、索引(倒排索引)、分词从众多检索工具中脱颖而出,本章是入门基础学习篇内容。
ElasticSearch是非常重要的检索工具,利用分词、索引(倒排索引)、分词从众多检索工具中脱颖而出,本章是入门基础学习篇内容。
{ "_index" : ".kibana_1", "_type" : "_doc", "_id" : "space:default", "_score" : 1.0, "_source" : { "space" : { "name" : "默认值", "description" : "这是您的默认空间!", "color" : "#00bfb3", "_reserved" : true }, "type" : "space", "references" : [ ], "updated_at" : "2022-05-13T09:16:16.465Z" }}
元数据,用于标注文档的相关信息_index : 文档所属的索引名_type : 文档所属的类型名_id : 文档唯一ID_source : 文档的原始Json数据_version : 文档的版本信息_score : 相关性打分//查看索引相关信息GET kibana_sample_data_ecommerce//查看索引的文档总数GET kibana_sample_data_ecommerce/_count//查看前10条文档,了解文档格式POST kibana_sample_data_ecommerce/_search{}//_cat indices API//查看indicesGET /_cat/indices/kibana*?v&s=index//查看状态为绿的索引GET /_cat/indices?v&health=green//按照文档个数排序GET /_cat/indices?v&s=docs.count:desc//查看具体的字段GET /_cat/indices/kibana*?pri&v&h=health,index,pri,rep,docs.count,mt//How much memory is used per index?GET /_cat/indices?v&h=i,tm&s=tm:desc
-E cluster.name=stark
进行设定一个集群可以有一个或多个节点-E node.name=node1指定
每一个节点在启动之后,会分配一个UID,保存在data目录下{ "settings": { "number_of_shards": 1, "number_of_replicas": 1 }}
1.使用PostMan创建一个名字叫stark的索引
http://127.0.0.1:9200/stark?pretty// 返回值{ "acknowledged": true, "shards_acknowledged": true, "index": "stark"}
支持自动生成文档ID和指定文档ID两种方式:
【资料图】
使用POST /indexName/_doc
,系统会自动生成Document ID使用PUT /indexName/_create/ID
创建时,URI中显示指定_create
,此时如果该ID的文档已经存在,操作失败GET http://127.0.0.1:9200/IndexName/_doc/ID
PUT IndexName/_doc/1{ "tags":["name","age","sex"]}
Index和Create不一样的地方:如果文档存在,就索引新的文档。否则现有文档会被删除,新的文档被索引,版本信息(Version) + 1。
Update方法不会删除原来的文档,而是实现真正的数据更新,POST方法 ,Payload需要包含在doc中。
POST IndexNmae/_update/1{ "doc":{ "albums":["aaa","bbb"] }}
DELETE IndexName/_doc/ID
Bulk Api 支持在一次Api调用中,对不同的索引进行操作,支持四种类型操作,Index\Create\Update\Delete。
可以在URI中指定Index,也可以在请求的Payload中进行,操作单挑操作失败,并不影响其他操作,返回结果包括了每一条操作执行的结果。
//对同一个索引进行操作POST /IndexName/_doc/_bulk //对不同的索引进行操作POST _bulk{ "index" : { "_index" : "test", "_id" : "1" } }{ "field1" : "value1" }{ "delete" : { "_index" : "test", "_id" : "2" } }{ "create" : { "_index" : "test2", "_id" : "3" } }{ "field1" : "value3" }{ "update" : {"_id" : "1", "_index" : "test"} }{ "doc" : {"field2" : "value2"} }
mGet批量操作,可以减少网络链接所产生的开销,提高性能。
#URI中指定indexGET /IndxName/_mget{ "docs" : [ { "_id" : "1" }, { "_id" : "2" } ]}//对不同的索引进行操作GET /_mget{ "docs" : [ { "_index" : "test", "_id" : "1" }, { "_index" : "test", "_id" : "2" } ]}
批量查询 msearch
// msearch 操作POST kibana_sample_data_ecommerce/_msearch{"query" : {"match_all" : {}},"size":1}{"index" : "kibana_sample_data_flights"}{"query" : {"match_all" : {}},"size":2}
倒排索引的核心组成
倒排索引包含两个部分单词词典,记录所有文档的单词,记录单词到倒排列表的关联关系单词词典一般比较大,可以通过B+树或哈希拉链法实现,以满足高性能的插入和查询倒排列表,记录了单词对应的文档结合,由倒排索引组成倒排索引项文档ID词频TF - 该单词在文档中出现的次数,用于相关性评分位置,单词在文档中分词的位置,用于语句搜索偏移,记录单词的开始结束位置,实现高亮显示Es的倒排索引
Es的Json文档中的每个字段,都有自己的倒排索引可以指定对某些字段不做索引优点:节省存储空间缺点:字段无法被搜索1.指定查询的索引
集群上所有的索引:
GET /_search //集群上所有的索引GET /Index1/_search //index1GET /Index1,Index2/_search //index1和index2GET /index*/_search //以index开头的索引
2.URI查询
使用"q",指定字符串查询"query string syntax",KV键值对用q表示查询内容,搜索叫做stark的客户GET /IndexName/_search?q=keyName:stark
3.Request Body
Request Body 支持 POST/GET两种方法,-H代表的是header参数 -d 代表的是body的请求参数。
curl -XGET "http://127.0.0.1:9200/IndexName/_search"-H "Content-Type:application/json" -d"{ "query":{ "match_all":{} } }"
4.搜索Response
搜索Response有几个关键的描述需要在这里解释一下:
took: 花费的时间total: 符合条件的总文档数hits:结果集,默认前10个文档_index:索引名_id:文档的ID_score: 相关度评分_source:文档原始信息q是关键字,df是指定字段,泛查询就是查询所有字段中包含关键字的结果
//指定字段GET /IndexName/_search?q=2020&df=titleGET /IndexName/_search?q=title:2020{ "profile":"true"}//泛查询GET /IndexName/_search?q=2020{ "profile":"true"}
//分组,Bool查询GET /IndexName/_search?q=title:(Hello World){ "profile":"true"}//泛查询GET /IndexName/_search?q=title:Hello World{ "profile":"true"}
//检索title里有Hello ,没有World的词条GET /IndexName/_search?q=title:(Hello NOT World){ "profile":"true"}//检索title里必须有Hello ,必须没有World的词条GET /IndexName/_search?q=title:(+Hello -World){ "profile":"true"}
URI Search支持范围查询和算术符号查询。
范围查询区间表示:[]闭区间,{}开区间year:{2019 TO 2020}year:* TO 2020算数符号year:> 2020year:(>2010 && < 2020)year:(+>2010 && +< 2020)GET /IndexName/_search?q=year:>2020{ "profile":"true"}
通配符查询 、正则表达式 、模糊匹配与近似查询效率低,占用内存大,不建议使用,这部分大家有个了解就好。
关键词:
ElasticSearch是非常重要的检索工具,利用分词、索引(倒排索引)、分词从众多检索工具中脱颖而出,本章是入门基础学习篇内容。
近日,人保财险启动“3·15”消费者权益保护教育宣传周活动,主动延展社会责任,扎实推进金融消费者权益保护工作,着力提升人民群众金融素养。
1、数据流(datastream)是一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。2、数据流最初
最新数据公布!全国房价终于涨了,此前连续跌了11个月。近日,国家统计局发布了最新数据报告。据称,全国房价已经涨了7成以上。这也是自去年6月
▲林芝索松村,春映南迦巴瓦峰。|刘青松摄人间净地,醉美林芝,畅游西藏,从“林”开始。3月15日,西藏林芝第二十届桃花旅游文化节推介会在上
全国人大代表、湖南东方红建设集团有限公司吊装事业部部长殷翠平。红网时刻新闻记者刘志雄北京报道“开发并应用新型的建筑
2023年3月15日晚,中央广播电视python总台举办了315晚会。晚会揭露了“用香精掺假的泰国香米”,多个地方的市场监管局已经立即采取行动。315晚
当地时间3月15日,欧洲三大股指收盘大跌。其中,法国巴黎股市CAC40指数报收于6885 71点,较前一交易日下跌255 86点,跌幅为3 58%;德国法兰克福
3月14日,由重庆市人力资源和社会保障局、重庆市农民工工作领导小组办公室主办的重庆市第四届“渝家人”杯家政服务业技能大赛
新华社合肥3月15日电(记者陈诺、栾若卉)健身卡、螃蟹券、民宿卡、网络会员……近年来,作为一种新消费模式,各类预付式消费
开源证券9月27日发布研报称,下半年将进入新能源车销售旺季,新能源车销量环比提升将带动电池需求提升,随着Q2材料价格企稳
去年以来,无为市场监督管理局多措并举积极推动消费维权提挡升级,力求持续提振消费信心,让百姓放心消费。2022年,无为市市场监督管理局接收
交易商品牌 产地交货地最新报价二叔丁基过氧化物 99%含量20kg包装聊城芫泽化工产品有限公司山东山东省 聊城市15300元 吨
1、silicaore;quentziteore一种以富含二氧化硅的矿物为主要组分的非金属矿产。2、硅石矿包括石英砂
津媒:扬科维奇对国足热身赛中问题做总结,多数国脚达比赛要求,国脚,津媒,林良铭,国足热身赛,网球运动员,中国网球赛事,奥林匹克运动会,中国网
据央视新闻3月15日消息,一名美国空军指挥官称,一架美国MQ-9无人机14号遭到了一架俄罗斯苏-27战斗机拦截,美无人机在被击中后坠入黑海。美方
1、我觉得主要还是因为庄世平是一个很有家国情怀的人,而且他还是很相信自己孩子的能力,相信自己的孩子可以做得更好,而且也想锻炼一下自己的
山寺桃花始盛开的上一句,山寺桃花始盛开很多人还不知道,现在让我们一起来看看吧!1 寓意:人间四月,花开已尽,古山寺桃花刚开。2 《大林寺
1、指的是和别人从前的约定。以上就是【巴赫旧约这首歌表达的情感,巴赫旧约】相关内容。
1、好好学吧孩纸呵呵慢慢学吧上网注册就可以了上网注册就可以交管局网站找网上车管所,点击在线学习。2、北京市交管局网站找网
毛记葵涌(01716)放量拉升,一度触及1 79港元创21年6月以来新高,午后升幅收窄。13日,公司获香港本地知名投资人吕宇健举牌。对于会否进一步增
1、在数学哲学中,直觉主义,或者新直觉主义(对应于前直觉主义),是用人类的构造性思维活动进行数学研究的方法。2、任
一、醉驾扣车要交停车费吗醉驾扣车不要交停车费,《中华人民共和国行政强制法》第二十六条规定,对查封、扣押的场所、设施或者财
茌平区气象台继续发布大风蓝色预警【Ⅳ 一般】
1、中华在线词典:愠〈动〉yùn(形声。2、从心,昷声。3、本义:含怒,生气)同本义愠,怒也。4、――《说文》愠,恨。
Copyright 2015-2023 港澳酒业网 版权所有 备案号:京ICP备2023022245号-31 联系邮箱:435 226 40 @qq.com