ElasticSearch写分词keyword、text以及读分词term、match_yzh_1346983557的博客-CSDN博客_term中用分词


本站和网页 https://blog.csdn.net/yzh_1346983557/article/details/124770051#t2 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

ElasticSearch写分词keyword、text以及读分词term、match_yzh_1346983557的博客-CSDN博客_term中用分词
ElasticSearch写分词keyword、text以及读分词term、match
yzh_1346983557
于 2022-05-16 15:23:57 发布
607
收藏
分类专栏:
ElasticSearch
文章标签:
elasticsearch
text、keyword
match、term
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yzh_1346983557/article/details/124770051
版权
ElasticSearch
专栏收录该内容
4 篇文章
0 订阅
订阅专栏
图示: 
一、写分词keyword、text
字符串 - text:文本索引,分词
默认结合standard analyzer(标准解析器)对文本进行分词、倒排索引。
不支持聚合,排序操作。
模糊匹配,支持 term、match 查询。
字符串 - keyword:关键词索引,不分词
不分词,直接将完整的文本保存到倒排索引中。
支持聚合、排序操作。
支持的最大长度为32766个UTF-8类型的字符,可以通过设置ignore_above指定自持字符长度,超过给定长度后的数据将不被索引,无法通过term精确匹配数据。
精确匹配,支持 term、match 查询。
keyword、text分词对比举例:
DELETE /yzh
PUT /yzh
"mappings": {
"properties": {
"code":{
"type": "keyword"
},
"desc":{
"type": "text"
POST /yzh/_doc
"code":"我的code1",
"desc":"我的第一个code啊"
POST /yzh/_doc
"code":"我的code2",
"desc":"我的第二个code啊"
analyze(分析)数据:
POST /yzh/_analyze
"field":"code",
"text":"我的code1"
POST /yzh/_analyze
"field":"name",
"text":"我的第二个code啊"
对比下方分析的结果,可发现 keyword 类型的字段不会分词直接整个文本存储到倒排索引中了,text 类型的字段分词后才进行倒排索引:
"tokens" : [
"token" : "我的code1",
"start_offset" : 0,
"end_offset" : 7,
"type" : "word",
"position" : 0
"tokens" : [
"token" : "我",
"start_offset" : 0,
"end_offset" : 1,
"type" : "<IDEOGRAPHIC>",
"position" : 0
},
"token" : "的",
"start_offset" : 1,
"end_offset" : 2,
"type" : "<IDEOGRAPHIC>",
"position" : 1
},
"token" : "第",
"start_offset" : 2,
"end_offset" : 3,
"type" : "<IDEOGRAPHIC>",
"position" : 2
},
"token" : "二",
"start_offset" : 3,
"end_offset" : 4,
"type" : "<IDEOGRAPHIC>",
"position" : 3
},
"token" : "个",
"start_offset" : 4,
"end_offset" : 5,
"type" : "<IDEOGRAPHIC>",
"position" : 4
},
"token" : "code",
"start_offset" : 5,
"end_offset" : 9,
"type" : "<ALPHANUM>",
"position" : 5
},
"token" : "啊",
"start_offset" : 9,
"end_offset" : 10,
"type" : "<IDEOGRAPHIC>",
"position" : 6
 keyword、text结合使用举例:
索引 yzh 添加索引字段 name :name使用text类型,分词了,但name下添加字段keyword使用keyword类型,没有分词。
PUT /yzh/_mapping
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
GET /yzh/_mapping
结果:
"yzh" : {
"mappings" : {
"properties" : {
"code" : {
"type" : "keyword"
},
"desc" : {
"type" : "text"
},
"name" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
  keyword、text结合使用查询举例:
POST /yzh/_doc
"code":"我的code3",
"desc":"我的第三个code啊",
"name":"我看看咋结合的"
POST /yzh/_doc
"code":"我的code4",
"desc":"我的第四个code啊",
"name":"我看看咋结合的2"
POST /yzh/_analyze
"field":"name.keyword",
"text":"我看看咋结合的"
结果:
"tokens" : [
"token" : "我看看咋结合的",
"start_offset" : 0,
"end_offset" : 7,
"type" : "word",
"position" : 0
POST /yzh/_analyze
"field":"name",
"text":"我看看咋结合的"
结果:
"tokens" : [
"token" : "我",
"start_offset" : 0,
"end_offset" : 1,
"type" : "<IDEOGRAPHIC>",
"position" : 0
},
"token" : "看",
"start_offset" : 1,
"end_offset" : 2,
"type" : "<IDEOGRAPHIC>",
"position" : 1
},
"token" : "看",
"start_offset" : 2,
"end_offset" : 3,
"type" : "<IDEOGRAPHIC>",
"position" : 2
},
"token" : "咋",
"start_offset" : 3,
"end_offset" : 4,
"type" : "<IDEOGRAPHIC>",
"position" : 3
},
"token" : "结",
"start_offset" : 4,
"end_offset" : 5,
"type" : "<IDEOGRAPHIC>",
"position" : 4
},
"token" : "合",
"start_offset" : 5,
"end_offset" : 6,
"type" : "<IDEOGRAPHIC>",
"position" : 5
},
"token" : "的",
"start_offset" : 6,
"end_offset" : 7,
"type" : "<IDEOGRAPHIC>",
"position" : 6
 term精确查询:name(name为text类型,分词了)
GET /yzh/_search
"query": {
"term": {
"name": "我看看咋结合的"
结果为空
  term精确查询:name.keyword(name.keyword为keyword类型,没有分词)
GET /yzh/_search
"query": {
"term": {
"name.keyword": "我看看咋结合的"
结果:
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.6931472,
"hits" : [
"_index" : "yzh",
"_type" : "_doc",
"_id" : "HQzrwYABJSFE9aEtrO9q",
"_score" : 0.6931472,
"_source" : {
"code" : "我的code3",
"desc" : "我的第三个code啊",
"name" : "我看看咋结合的"
match模糊匹配:name(name为text类型,分词了)
GET /yzh/_search
"query": {
"match": {
"name": "我"
结果:
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : 1.4481319,
"hits" : [
"_index" : "yzh",
"_type" : "_doc",
"_id" : "HQzrwYABJSFE9aEtrO9q",
"_score" : 1.4481319,
"_source" : {
"code" : "我的code3",
"desc" : "我的第三个code啊",
"name" : "我看看咋结合的"
},
"_index" : "yzh",
"_type" : "_doc",
"_id" : "7QwDwoABJSFE9aEtae_F",
"_score" : 1.3795623,
"_source" : {
"code" : "我的code4",
"desc" : "我的第四个code啊",
"name" : "我看看咋结合的2"
二、读分词term、match
term:精确匹配
精确查询,搜索前不会再对搜索词进行分词拆解。
GET /yzh/_search
"query": {
"term": {
"code": "我的code1"
GET /yzh/_search
"query": {
"term": {
"desc": "我"
terms:多条件精确匹配(or)
term属于精确匹配,只能查单个词。精确匹配多个词使用terms。
GET /yzh/_search
"query": {
"terms": {
"desc": ["我","二"]
terms里的 [ ] 是 或 的关系,只要匹配到其中一个词就会返回。想要多个词同时匹配,就得使用bool的must来做,如下:
GET /yzh/_search
"query": {
"bool": {
"must": [
"term": {
"desc": "我"
},
"term": {
"desc": "二"
match:分词匹配(or)
先进行分词拆分,拆完词再匹配查询。
GET /yzh/_search
"query": {
"match": {
"code": "我的code1"
GET /yzh/_search
"query": {
"match": {
"desc": "我1"
match:分词匹配and模式
match拆词后,只要匹配到其中一个词就会返回。想要多个词同时匹配,就得使用match的and模式。
GET /yzh/_search
"query": {
"match": {
"desc": {
"query": "我一",
"operator": "and"
 match_phrase:词组匹配(分词匹配and且顺序一致)
要求所有的分词必须同时出现在文档中,同时位置必须紧邻一致,就得使用match_phrase。
GET /yzh/_search
"query": {
"match_phrase": {
"desc": "我的第二个"
GET /yzh/_search
"query": {
"match_phrase": {
"desc": "我第"
multi_match:多字段匹配
其中一个字段包含分词就被文档就被搜索到时,可以用multi_match。
GET /yzh/_search
"query": {
"multi_match": {
"query": "我q",
"fields": [
"code",
"desc"
yzh_1346983557
关注
关注
点赞
收藏
打赏
评论
ElasticSearch写分词keyword、text以及读分词term、match
图解:一、写分词keyword、text字符串 - text:文本索引,分词默认结合standard analyzer(标准解析器)对文本进行分词、倒排索引。不支持聚合,排序操作。模糊匹配,支持 term、match 查询。字符串 - keyword:关键词索引,不分词不分词,直接将完整的文本保存到倒排索引中。支持聚合、排序操作。支持的最大长度为32766个UTF-8类型的字符,可以通过设置ignore_above指定自持字符长度,超过给定长度后的数据将不被索引,..
复制链接
扫一扫
专栏目录
Elasticsearch7 分词器(内置分词器和自定义分词器)
white_while的博客
08-05
6705
文章目录Elasticsearch7 分词器(内置分词器和自定义分词器)analysis概览char_filterhtml_stripmappingpattern_replacefilterasciifoldinglengthlowercaseuppercasengramedge_ngramdecimal_digittokenizerWord Oriented TokenizersStandard...
ElasticSearch设置字段的keyword属性
begefefsef的博客
09-02
323
这个时候,我们就需要对该字段设置一个keyword属性,并将该keyword属性的type设置为keyword。这样,我们在查询或者在聚合时候,通过该属性下的keyword字段,可以实现完全匹配。es查询时候,我们经常会遇到这种场景:对text类型的文档进行查询或者聚合,却发现聚合的字段被es分词了。**建议:在创建映射的时候,直接对不需要分词的字段设置keyword属性。(3)给nested对象下的name字段设置keyword属性。对一个nested对象下的name字段设置keyword属性。
参与评论
您还未登录,请先
登录
后发表或查看评论
ElasticSearch查询学习笔记章节1——term,terms,match,id查询
LXWalaz1s1s的博客
10-09
1088
  ElasticSearch(以下简称:ES)作为搜索引擎,那么她最核心的重点当然是查询,接下来就给大家整理下ES的一些常用的搜索实现,本笔记主要实现RESTFul风格的代码和Java API代码为主,至于更多的其它API,可参考官网的各类API来实现;
  官网各类编程语言API:Elasticsearch Clients
图1 ES官网常用的各类编程语言API
ElasticSearch的版本
  本人使用的ES版本是7.7.1,已经去除了type的概念。
ElasticSearch测试的索引及数据
解决Elasticsearch的Text类型的字段参与聚合和排序
最新发布
qq_29864051的博客
10-22
582
text字段类型用于全文内容,例如电子邮件正文或产品说明,并且es会通过分析器对字符串进行分词,可以在全文检索中搜索单独的单词。文本字段最适合非结构化但可读的内容并且不用于排序,也很少用于聚合keyword主要用于结构化内容的字段,并且总是会有相同值的字段。因为通常需要用于聚合、排序和术语级查询(如term),所以避免参与全文检索如果需要使用text字段类型进行聚合和排序,则需要在建立mapping映射时在fields字段中增加一个keyword类型的数据。
ElasticSearch 笔记四(关于文档的基本操作花式查询操作) 以及keyword ,text 类型的理解。高亮查询
m0_46937429的博客
04-09
182
这里的数据是接着上篇基础回顾的数据基础做的复杂操作
复杂查询
我们在使用mysql 的时候,经常容易出现一些复杂的查询,如:排序,分页,高亮,模糊查询,精准查询
上面的查询是一个精写的,我们可以拆开查询就是
我们再次查询一下“娇娇”这个词。
hit里是什么?
hit 里主要是 索引和文档的信息
查询的结果总数
查询出来的具体文档,数据中的东西都可以遍历出来了
分数:我们可以通过来判断谁更加符合结果。
这是我们现在里面有的数值
需求:假如我们现在要查出来的数据只出现 name不出现age
如果我
Elasticsearch教程(1) Query DSL入门
Java Spring Elasticsearch
09-29
8475
1. index
1.1 查询所有index
GET /_cat/indices?v
1.2 新增index
#新增一个名为pigg的index
PUT /pigg
1.3 删除index
#删除pigg这个index,产线千万别这么做,删了就完了
DELETE /pigg
2. document
2.1 新增document
PUT /pigg/_doc/1
&amp;amp;quot;name&amp;amp;quot;: &
elasticsearch中term与match
qq_17690301的博客
05-31
541
分词器、字符串类型、倒排索引
在说term和match之前,需要先了解一下这三个概念
分词器
es默认的分词器是standard analyzer,该分词器的特点是:将所有英文字符串的大写字母转换成小写字母,然后按照空格对英文字符串进行分词,如果遇到汉字,则将汉字一个字作为一个分词。可以看出,该分词器对于中文句子的分词效果来说并不好,无法以合适的中文词组来分词。
为了提高中文的分词效果,可以增加ik分词器插件,该插件提供了两种好用的分词策略:最少切分ik_smart analyzer和最细粒度切分ik_ma
Elasticsearch——Keyword字段类型
qq_37107851的博客
08-25
2394
keyword family包括以下字段类型:
keyword,用于结构化内容,如ID、电子邮件地址、主机名、状态码、邮政编码或标记。
constant_keyword始终包含相同值的keyword字段。
wildcard非结构化machine-generated内容,wildcard类型针对具有大值或高基数的字段进行了优化。
keyword字段通常用于排序(sorting)、聚合(aggregations)和term-level查询,例如term。
避免使用keyword字段进行全文搜索(...
grafana结合es查询语法
weixin_44141000的博客
12-28
9070
一、类别变量(模板使用)
{“find”: “fields”, “type”: “keyword”}
例子:{“find”: “fields”, “type”: “long”}
查找类型为 long 的字段。
{“find”: “terms”, “field”: “@hostname”, “size”: 1000}
例子:{“find”: “terms”, “field”: “timestamp”, “size”: 1000}
返回字段名称为 timestamp 的列表,大小为1000。
{“find”:
ElasticSearch二:文档批量操作实现、DSL语法深入解析、文档映射与数据类型、锁机制、集群环境搭建
Xx__WangQi的博客
03-12
302
ElasticSearch二:文档批量操作实现、DSL语法深入解析、文档映射与数据类型、锁机制、集群环境搭建
一、文档批量操作
这里多个文档是指,批量操作多个文档
批量获取文档数据
批量获取文档数据是通过_mget的API来实现的
在URL中不指定index和type
请求方式:GET
请求地址:_mget
功能说明 : 可以通过ID批量获取不同index和type的数据
请求参数:
docs : 文档数组参数
_index : 指定index
_type :
Elasticsearch教程(19) 详解mapping之keyword
Java Spring Elasticsearch
08-28
4281
详解mapping之keyword1 前言2 核心类型2.1 关键词:keyword2.1.1 适合用keyword的例子2.1.2 说明2.1.3 实验2.1.4 手动设置mapping2.1.5 ignore_above是什么?
1 前言
本文基于ES7.6,如果是之前版本,是有区别的。
ES支持的字段类型很多,但工作中常用的也就那些核心字段。 一开始学习ES时,掌握好常用的类型,不必要精通每一种,如果工作中遇到了需要用到特殊类型再去研究。
学习一门技术要先广度后深度,不能陷入”只见树木,不见森林“。
【ElasticSearch】ElasticSearch中字符串.keyword和.text类型区别和模糊查询
热门推荐
sfh2018的博客
06-21
1万+
在使用es对某个字符串字段进行模糊查询的时候,可能因为该字段是text类型而搜索不到,因为text类型会将字符串进行分词之后存入索引,那么我们在模糊查询的时候其实是基于已分词的词组进行的模糊查询,这样会导致本来应该查询出来的数据有可能会查询不到。所以可以通过keyword来进行精确匹配,这里记录一下对es的text和keyword的理解和使用,有不足的欢迎码友指正。
一、text和keyword类型介绍
1.ES5.0及以后的版本取消了string类型,将原先的string类型拆分为text和keyword
Elasticsearch 5.0 中term 查询和match 查询的认识
weixin_30845171的博客
01-06
329
Elasticsearch 5.0 关于term query和match query的认识
一、基本情况
前言:term query和match query牵扯的东西比较多,例如分词器、mapping、倒排索引等。我结合官方文档中的一个实例,谈谈自己对此处的理解
string类型在es5.*分为text和keyword。text是要被分词的,整个字符串根据一定规则分解成一个个小写的t...
(7)Elasticsearch-基础语法-下(Term、Match、Keyword、Text)
allensandy的博客
10-15
1857
1.概念
1.1.term与match
term是精确查询
match是模糊查询
1.2.text与keyword
ES更新到5版本后,取消了 string 数据类型,代替它的是 keyword 和 text 数据类型。
Text
Text 数据类型被用来索引长文本,比如说电子邮件的主体部分或者一款产品的介绍。这些文本会被分析,在建立索引前会将这些文本进行分词,转化为词的组合,建立索引。允许 ES来检索这些词语。text 数据类型不能用来排序和聚合。
Keyword
Keyword 数据类
Elasticsearch 查询之term,match,match_phrase
zhanggf的博客
06-01
1565
1. term查询是基于词项的查询,而且当设置为term查询时,es不会对这个词做任何处理,但是在文本进行分词时,通常都会将大写转为小写,这个时候就会出现查不出来的情况,比如:
POST /test/_doc
"name":"Pantheon"
这样创建出来的doc可以看到明显做了lowercase,因为用的standard分词器
GET /test/_analyze
"field": "name",
"text": "Pantheon"
所以当使用下面的语句去查
Elasticsearch 5.0 中term 查询和match 查询(text和keyword)
z69183787的专栏
03-24
1474
最近项目中使用了ElasticSearch, 在使用基本的查询功能的时候,遇到些头疼的事情,有时候数据明明存在,用term查询就是查不到,用match才可以。有时候缺可以,差点就把es整成玄学了。后来阅读各种博客后,我想我明白其中的原理了。
1. term&match
term: 精确查询,对查询的值不分词,直接进倒排索引去匹配。
match; 模糊查询,对查询的值分词,对分词的结果...
elasticsearch 7.4 term查询keyword字段和text字段的区别
liaomingwu的专栏
01-20
913
elasticsearch 7.4 term查询keyword字段和text字段的区别
ElasticSearch设置字段的keyword属性
WorldMvp的专栏
04-12
5088
es查询时候,我们经常会遇到这种场景:对text类型的文档进行查询或者聚合,却发现聚合的字段被es分词了。
这个时候,我们就需要对该字段设置一个keyword属性,并将该keyword属性的type设置为keyword。这样,我们在查询或者在聚合时候,通过该属性下的keyword字段,可以实现完全匹配。
示例:
对一个nested对象下的name字段设置keyword属性。
(1)创建映射。
PUT /my_store/_mapping/products?pretty
"propertie.
【Elasticsearch教程8】Mapping字段类型之keyword
Java Spring Elasticsearch
08-29
903
Elasticsearch keyword constant_keyword wildcard类型
Elasticsearch DSL查询语法-关键字排序(数值,keyword)和地理位置排序(_geo_distance)包括使用script对keyword类型的数值排序
qq_29864051的博客
05-24
1396
概述
排序:es支持对于检索结果进行排序,通常默认的检索是根据相关度算分(_score)降序排序,相关度较高的数据排在最前。我们也可以指定排序字段和排序方式自定义排序,此时相关度算分就不会执行,执行效率会有提升。
排序字段类型:keyword、地理坐标、date、数值
排序DSL语法
POST /book/_search
"query": { #查询语句
"match_all": {}
},
"sort": [ #排序是数组,说明支持多个排序字段,
{ 如果靠前的
【Elasticsearch的高级检索语法】
u010754411的博客
07-27
167
es 高级查询语法
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:书香水墨
设计师:CSDN官方博客
返回首页
yzh_1346983557
CSDN认证博客专家
CSDN认证企业博客
码龄6年
暂无认证
161
原创
3万+
周排名
1万+
总排名
78万+
访问
等级
6529
积分
76
粉丝
304
获赞
156
评论
1138
收藏
私信
关注
热门文章
chmod +x,赋予“可执行”权限
45916
Linux安装、运行MongoDB
45847
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, forc
42316
Mysql的utf8与utf8mb4区别,utf8mb4_bin、utf8mb4_general_ci、utf8mb4_unicode_ci区别
39962
mysql连接池DruidDataSource的使用、配置
30612
分类专栏
springboot
9篇
ElasticSearch
4篇
JVM
4篇
HTTP
2篇
JGroups
测试
1篇
并发
1篇
计算机基础
1篇
spring cloud
1篇
k8s
1篇
AQS
1篇
设计模式
1篇
Quartz
1篇
Keepalived
1篇
yum
Centos
Spring Boot
27篇
mybatis
3篇
Spark
3篇
Hadoop
4篇
JAVAEE
1篇
RabbitMQ
2篇
storm
1篇
Drools
1篇
JDK
14篇
MongoDB
5篇
Kafka
4篇
Docker
10篇
OpenTSDB
1篇
Node.js
1篇
git
4篇
Spring
4篇
VSCode
1篇
Netty
4篇
temp
linux
13篇
idea
3篇
activemq
1篇
protobuf
3篇
MQTT
3篇
JAVA
22篇
Mysql
6篇
parallelStream
Kubernates
4篇
Redis
6篇
Slf4j
2篇
Druid
1篇
Shell
1篇
HDFS
3篇
Zookeeper
4篇
最新评论
mysql连接池DruidDataSource的使用、配置
weixin_41589448:
DruidDataSource 需要单例化吗,不然每个请求过来的时候都会生成一个实例吧
IDEA插件:QAPlug,代码规范、潜在bug检查
꧁三七꧂:
终于看见一篇管用的,可恶的营销号
zookeeper-3.4.14安装
L。.。:
博主你这个连接好像不能用了
springboot下使用druid-spring-boot-starter
淼影宁宁:
数据源的加载逻辑讲的很清晰
springboot解决CORS跨域的三种方式&cookie的跨域支持
m0_51014381:
哇塞
我的springboot事2.6.7的,设置了same-site为none之后就设置上了!感谢!
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
规则引擎groovy
es nested object区别
maven scope
2022年15篇
2021年31篇
2020年19篇
2019年70篇
2018年38篇
2017年1篇
目录
目录
分类专栏
springboot
9篇
ElasticSearch
4篇
JVM
4篇
HTTP
2篇
JGroups
测试
1篇
并发
1篇
计算机基础
1篇
spring cloud
1篇
k8s
1篇
AQS
1篇
设计模式
1篇
Quartz
1篇
Keepalived
1篇
yum
Centos
Spring Boot
27篇
mybatis
3篇
Spark
3篇
Hadoop
4篇
JAVAEE
1篇
RabbitMQ
2篇
storm
1篇
Drools
1篇
JDK
14篇
MongoDB
5篇
Kafka
4篇
Docker
10篇
OpenTSDB
1篇
Node.js
1篇
git
4篇
Spring
4篇
VSCode
1篇
Netty
4篇
temp
linux
13篇
idea
3篇
activemq
1篇
protobuf
3篇
MQTT
3篇
JAVA
22篇
Mysql
6篇
parallelStream
Kubernates
4篇
Redis
6篇
Slf4j
2篇
Druid
1篇
Shell
1篇
HDFS
3篇
Zookeeper
4篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
yzh_1346983557
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值