您的位置:首页 > 娱乐 > 八卦 > 站长工具无忧_武汉市平台公司_安卓优化大师app下载_爱站网关键词挖掘机

站长工具无忧_武汉市平台公司_安卓优化大师app下载_爱站网关键词挖掘机

2024/12/23 8:37:46 来源:https://blog.csdn.net/qq_42508660/article/details/143267787  浏览:    关键词:站长工具无忧_武汉市平台公司_安卓优化大师app下载_爱站网关键词挖掘机
站长工具无忧_武汉市平台公司_安卓优化大师app下载_爱站网关键词挖掘机

elasticsearch基础

基础概念

elasticsearch中的文档数据会被序列化为json格式后存储在elasticsearch中。

索引(index):相同类型的文档的集合

映射(mapping):索引中文档的字段约束信息,类似表的结构约束

文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式

字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)

DSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD

文档和词条?

每一条数据就是一个文档 对文档中的内容分词,得到的词语就是词条

正向索引?

于文档id创建索引。根据id查询快,但是查询词条时必须先找到文档,而后判断是否包含词条

倒排索引?

对文档内容分词,对词条创建索引,并记录词条所在文档的id。查询时先根据词条查询到文档id,而后根据文档id查询文档

IK分词器(采用正向迭代最细粒度算法)

中文分词往往需要根据语义分析,比较复杂,这就需要用到中文分词器,例如IK分词器。

分词器的作用是什么?

创建倒排索引时,对文档分词 用户搜索时,对输入的内容分词

IK分词器有几种模式?

ik_smart:智能切分,粗粒度 ik_max_word:最细切分,细粒度IK分词器

如何拓展分词器词库中的词条?

利用config目录的IkAnalyzer.cfg.xml文件添加拓展词典 在词典中添加拓展词条

Mapping映射属性

mapping是对索引库中文档的约束,常见的mapping属性包括:

type:字段数据类型,

常见的简单类型有: 字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)

数值:long、integer、short、byte、double、float

布尔:boolean

日期:date

对象:object

index:是否创建索引,默认为true

analyzer:使用哪种分词器

properties:该字段的子字段

索引库操作

创建索引库和mapping的请求语法如下:

PUT /索引库名称
{"mappings": {"properties": {"字段名":{"type": "text","analyzer": "ik_smart"},"字段名2":{"type": "keyword","index": "false"},"字段名3":{"properties": {"子字段": {"type": "keyword"}}},// ...略}}
}

创建索引库 

PUT /wbn
{"mappings": {"properties": {"info":{"type": "text","analyzer": "ik_smart","index": true},"age":{"type": "byte","index": true},"email":{"type": "keyword","index": false},"name":{"type": "object","properties": {"firstname":{"type": "keyword"},"lastname":{"type": "keyword"}}}}}
}

查询索引库操作

GET /wbn
{"wbn" : {"aliases" : { },"mappings" : {"properties" : {"age" : {"type" : "byte"},"email" : {"type" : "keyword","index" : false},"info" : {"type" : "text","analyzer" : "ik_smart"},"name" : {"properties" : {"firstname" : {"type" : "keyword"},"lastname" : {"type" : "keyword"}}}}},"settings" : {"index" : {"routing" : {"allocation" : {"include" : {"_tier_preference" : "data_content"}}},"number_of_shards" : "1","provided_name" : "wbn","creation_date" : "1729975477550","number_of_replicas" : "1","uuid" : "hiGQDD0BTV-ApQBQpZ5NlQ","version" : {"created" : "7120199"}}}}
}

删除索引库

DELETE /wbn
{"acknowledged" : true
}

索引库修改

以上对比添加字段可以修改字段不行。

索引库操作有哪些?

创建索引库:PUT /索引库名

查询索引库:GET /索引库名

删除索引库:DELETE /索引库名

添加字段:PUT /索引库名/_mapping

文档操作

新增文档

POST /索引库名/_doc/文档id
{"字段1": "值1","字段2": "值2","字段3": {"子属性1": "值3","子属性2": "值4"},// ...
}
POST /wbn/_doc/1
{"info":"AAAA超级景区","email":"xxxxx@qq.com","name":{"firstname":"西","lastname":"安"}
}

查询文档

GET /索引库名/_doc/文档id

GET /wbn/_doc/1

删除文档

 DELETE /索引库名/_doc/文档id

DELETE /wbn/_doc/1

 修改文档

全量修改:会删除旧文档,添加新文档

格式

PUT /索引库名/_doc/文档id
{"字段1": "值1","字段2": "值2",// ... 略
}

样例 

PUT /wbn/_doc/1
{"info":"AAAA超级景区","email":"yyyyyyy@qq.com","name":{"firstname":"西","lastname":"安"}
}

增量修改,修改指定字段值 

格式

POST /索引库名/_update/文档id
{"doc": {"字段名": "新的值",}
}

样例

POST /wbn/_update/1
{"doc":{"info":"AAAAA兵马俑超级景区1"}}

文档操作有哪些?

创建文档:POST /索引库名/_doc/文档id  { json文档 }

查询文档:GET /索引库名/_doc/文档id

删除文档:DELETE /索引库名/_doc/文档id

修改文档:

全量修改:PUT /索引库名/_doc/文档id { json文档 }

增量修改:POST /索引库名/_update/文档id { "doc": {字段}}

批量处理

elasticsearch中允许通过一次请求中携带多次文档操作,也就是批量处理,语法格式如下:

POST /_bulk
{ "index" : { "_index" : "索引库名", "_id" : "1" } }
{ "字段1" : "值1", "字段2" : "值2" }
{ "index" : { "_index" : "索引库名", "_id" : "1" } }
{ "字段1" : "值1", "字段2" : "值2" }
{ "index" : { "_index" : "索引库名", "_id" : "1" } }
{ "字段1" : "值1", "字段2" : "值2" }
{ "delete" : { "_index" : "test", "_id" : "2" } }
{ "update" : {"_id" : "1", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }

批量新增

POST /_bulk
{"index":{"_index":"wbn","_id":2}}
{"info":"AAAA超级景区A","email":"yyyyyyy@qq.com","name":{"firstname":"西", "lastname":"安"}}
{"index":{"_index":"wbn","_id":3}}
{"info":"AAAA超级景区B","email":"ccccccc@qq.com","name":{"firstname":"西", "lastname":"安"}}

批量删除

POST /_bulk
{"delete":{"_index":"wbn","_id":2}}
{"delete":{"_index":"wbn","_id":3}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com