Solidity学习之接收发送代币
Solidity学习之函数接收eth如果要让合约可以接受eth,那么需要payable修饰将要调用的函数,否则函数不能接受eth// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.7; contract A{ address payable public owner; constructor(){ owner =payable( msg.sender); } function deposit() external payable { } function getBalance() external view returns (uint) { return address(this).balance; } } 合约接收eth当合约定义了Fallback或者Recieve函数,当你调用合约不存在的函数时,会默认调用他们,data是空的时候会优先调用Fallback,所以只要把这两个函数定义为payable,则合约可以接受eth发送eth有三种方式,tansfer,send,call// SPDX-License-Identi...
Solidity学习之接收发送代币
Solidity学习之函数接收eth如果要让合约可以接受eth,那么需要payable修饰将要调用的函数,否则函数不能接受eth// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.7; contract A{ address payable public owner; constructor(){ owner =payable( msg.sender); } function deposit() external payable { } function getBalance() external view returns (uint) { return address(this).balance; } } 合约接收eth当合约定义了Fallback或者Recieve函数,当你调用合约不存在的函数时,会默认调用他们,data是空的时候会优先调用Fallback,所以只要把这两个函数定义为payable,则合约可以接受eth发送eth有三种方式,tansfer,send,call// SPDX-License-Identi...
ES学习之DSL-2
1.Match多字段查询,同时对多个字段进行查询get /index1/_search { "query":{ "multi_match": { "query": "20", "fields": ["name","age"] } } } 2.对查询字符串不进行分词,使用termet /index1/_search { "query":{ "term": { "name": { "value": "jack" } } } } 3.批量进行term查询,使用termsget /index1/_search { "query":{ "terms": { "name": [ "jack", "chen", "1" ] } } } 4.使用range对数字或时间进行范围查询get /index1/_search { "query": { "range": { "age": { "gte": 10, "lte": 20 } } } } 5.不计算相关性得分的查询,会缓存结果,性能高的查询get /index1/_search { "query": { "bool": { "filter": ...
ES学习之DSL-2
1.Match多字段查询,同时对多个字段进行查询get /index1/_search { "query":{ "multi_match": { "query": "20", "fields": ["name","age"] } } } 2.对查询字符串不进行分词,使用termet /index1/_search { "query":{ "term": { "name": { "value": "jack" } } } } 3.批量进行term查询,使用termsget /index1/_search { "query":{ "terms": { "name": [ "jack", "chen", "1" ] } } } 4.使用range对数字或时间进行范围查询get /index1/_search { "query": { "range": { "age": { "gte": 10, "lte": 20 } } } } 5.不计算相关性得分的查询,会缓存结果,性能高的查询get /index1/_search { "query": { "bool": { "filter": ...
ES学习之DSL Match
1.match query对查询条件先进行分词,使用和被查字段相同的分词法get /index1/_search{ "query":{ "match":{ "name":"jack chen" //查询前会分词为jack,chen两个term,然后去倒排索引查找 } } } 下面是查找到的结果,只要包含查询条件中的一个term就符合搜索,命中term越多,关联得分越高。"hits" : [ { "_index" : "index1", "_id" : "3", "_score" : 0.78038335, "_source" : { "name" : "jack chen" } }, { "_index" : "index1", "_id" : "2", "_score" : 0.52354836, "_source" : { "name" : "chen", "age" : 20 } }, { "_index" : "index1", "_id" : "1", "_score" : 0.52354836, "_source" : { "name" : "jack", "age"...
ES学习之DSL Match
1.match query对查询条件先进行分词,使用和被查字段相同的分词法get /index1/_search{ "query":{ "match":{ "name":"jack chen" //查询前会分词为jack,chen两个term,然后去倒排索引查找 } } } 下面是查找到的结果,只要包含查询条件中的一个term就符合搜索,命中term越多,关联得分越高。"hits" : [ { "_index" : "index1", "_id" : "3", "_score" : 0.78038335, "_source" : { "name" : "jack chen" } }, { "_index" : "index1", "_id" : "2", "_score" : 0.52354836, "_source" : { "name" : "chen", "age" : 20 } }, { "_index" : "index1", "_id" : "1", "_score" : 0.52354836, "_source" : { "name" : "jack", "age"...
Solidity学习之临时ES学习之倒排索引
Solidity是生活,ES是工作!最近工作要用到ES,还是学习下。ES中的倒排索引由两个主要部分组成:Term Dictionary 和Posting List。下面例子来说明他们的结构。 存在以下三条数据:经过分词后,产生5个term:这是,文档,A,B,内容,每个term都关联了它所在的数据行,以“内容”term为例,"内容"关联了Posting List,PostingList包含以下几个字段,ID,TF(Term Frequence 在文档中的出现频率,用来统计关联度的),Position(在文档中出现的位置,一行数据分为了3个term,它是第三个,那么位置为2,下标从0开始), Offset(在文档中的实际偏移位置)了解了Term与PostingList的关联关系,先说说mysql中的索引树,mysql中的索引树是一颗b+树,树节点是有序的索引数据,叶子节点也是有序的主键id,mysql查数据就是利用b+树的数据结构优势迅速找到索引所对应的主键id,再根据主键id找到行数据。 类似于mysql的索引树结构,es中的倒排索引也是一颗b+树,树节点是有序的Terms,叶子...
Solidity学习之临时ES学习之倒排索引
Solidity是生活,ES是工作!最近工作要用到ES,还是学习下。ES中的倒排索引由两个主要部分组成:Term Dictionary 和Posting List。下面例子来说明他们的结构。 存在以下三条数据:经过分词后,产生5个term:这是,文档,A,B,内容,每个term都关联了它所在的数据行,以“内容”term为例,"内容"关联了Posting List,PostingList包含以下几个字段,ID,TF(Term Frequence 在文档中的出现频率,用来统计关联度的),Position(在文档中出现的位置,一行数据分为了3个term,它是第三个,那么位置为2,下标从0开始), Offset(在文档中的实际偏移位置)了解了Term与PostingList的关联关系,先说说mysql中的索引树,mysql中的索引树是一颗b+树,树节点是有序的索引数据,叶子节点也是有序的主键id,mysql查数据就是利用b+树的数据结构优势迅速找到索引所对应的主键id,再根据主键id找到行数据。 类似于mysql的索引树结构,es中的倒排索引也是一颗b+树,树节点是有序的Terms,叶子...
Solidity学习之payable
重点只有一句:payable表明合约有接收eth的能力 相信我们大家都对发送eth到合约地址这个操作不陌生了吧,涉及到金钱操作,solidity规定只有声明了payable的函数才能接收eth,如下面的例子// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; contract test{ //创建合约时就能发送eth到合约 constructor() payable{ } //查询合约余额 function getBalance() external view returns (uint){ return address(this).balance; } //合约可以接收eth receive() external payable{} //调用函数失败时会执行这个函数 fallback() external payable{} } 当我们将构造器声明为payable,那么在创建合约的同时就可以发送eth到合约声明receive()函数,这是一个固定函数名,表明合约支持接收eth声明fall...
Solidity学习之payable
重点只有一句:payable表明合约有接收eth的能力 相信我们大家都对发送eth到合约地址这个操作不陌生了吧,涉及到金钱操作,solidity规定只有声明了payable的函数才能接收eth,如下面的例子// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; contract test{ //创建合约时就能发送eth到合约 constructor() payable{ } //查询合约余额 function getBalance() external view returns (uint){ return address(this).balance; } //合约可以接收eth receive() external payable{} //调用函数失败时会执行这个函数 fallback() external payable{} } 当我们将构造器声明为payable,那么在创建合约的同时就可以发送eth到合约声明receive()函数,这是一个固定函数名,表明合约支持接收eth声明fall...