转自:https://mp.weixin.qq.com/s/qL1iZG1jBf7HYyfuM3qipA
作者: zimu
北京学区房凉了,深圳学区房还在一年翻倍?

近日,北京教育资源最优质最集中的西城区,宣布实行“多校划片”,彻底告别一套房锁定一个学区的时代。
这条消息,让深圳家长们想到一个更熟悉的词——大学区。
多年来,在学位紧张的深圳,为了让孩子站上起跑线,家长操碎了心和钱。尤其是今年,不仅严查实际居住,实施学位锁定等,还要求公办、民办学校取消点招、掐尖,想把孩子送进名校越来越难。
另一方面,一直屹立深圳楼市之巅的,也是名校学区房。不仅动辄10+万/平,每年的涨幅也是妥妥的跑赢大市,引来一代又一代家长击鼓传花。
入学门票+稳赚投资,一直是深圳家长闭眼买学区房的底气。但是今天,北京用行动证明,这场游戏随时可能被叫停。
现在接盘学区房还值不值?2020年买学区房要如何避坑?围绕大家最近问得最多的几个问题,今天我们来聊聊深圳学区房。
首先,深圳的学区房,尤其是名校学区房,真的很贵。
在深圳,学校排名比较靠前的学区房,价格都远超周边,名校学区房更是清一色的10+万/平,房价与地段、配套严重不匹配的案例,比比皆是。但这样的房子,不仅贵得惊人,市场更是热得离谱。
从Q房网公布的数据来看,近两年一季度的成交TOP10楼盘中,都不乏小户型学区房的身影。 (图源Q房网)
难道深圳家长都这么不理性?当然不。在深圳,学区房不仅是孩子入学的门票,更是一种几乎稳增长的投资。
说到房价翻番,很多人第一时间会想到深圳超级网红盘“润府3期”,但其实,这样的涨幅在深圳名校学区房并不少见。
举个例子。去年涨幅最大的片区之一,福田八卦岭片区,因为盛传名校荔园小学东校区即将落地,成交价一度从5、6万/平飙涨到10万/平,实现资产翻倍的时间不过短短一年。
(两年房价翻倍 图源贝壳找房)
对深圳10万/平房价麻木的人,不妨先感受八卦岭的整体环境。作为福田房价洼地,八卦岭靠原有的配套很难爬上现在的价格。
(绿网铺盖地块为网传荔园东校区位置)
( 楼龄超过20年的八卦岭热门成交小区——旭飞花园)
而且,八卦岭片区里,涨幅最高、市场最火的正是楼龄最高的几个小区,因为距离荔园小学东校区最近,被划入的可能性最大,未来还可能博一把旧改。
可以说,在实打实的利润面前,是深圳人自己第一时间抛弃了所谓的“舒适度”。
再举个例子。深圳最著名的名校学区——百花片区,因为名校扎堆,整个片区成为福田仅次于香蜜湖片区的“豪宅区”。片区几乎都是楼龄超过20年的“老破小”,但是片区二手挂牌均价已经超过13万/平。
(从2020年5月的挂牌均价来看,名校扎堆的百花片区已经成为福田最贵的片区)
(即使楼龄超过30年,二手挂牌均价也能超过12万/平)
百花片区多年来一直是福田的房价高地,凭借着百花小学、荔园小学和实验中学等名校,常年占据房价排行榜和成交量排行榜前列,不断用实际成交告诉人们,一山还有一山高。
(短短4年,长城花园的85平户型已经从640万上涨到1000万 图源贝克找房)
而且,虽然今年要严查实际居住,这些“老破小”成交依然非常火热,不要小瞧深圳家长的勇气和决心。
深究学区房火热现象的背后,无非是教育资源不平均、学位缺口和供需矛盾等问题。
教育资源的问题并不仅仅存在于年轻的深圳,名校学区房的竞争在每座重点城市都有迹可循。支撑深圳学区房走向疯狂,更直接的是当前的学位缺口问题。
几乎每一年深圳各区都会发布学位缺口预警,这绝对不是耸人听闻,关注学位的家长都知道,每年因为学位不足被迫分流到离家很远的公办学校、民校,甚至回老家读书的案例并不少见。
2020年2月,罗湖区教育局发布公告,点名区内23所小学、11所中学的学位“特别紧张”,要求各位家长做好被分流的准备;
2019年12月,福田区教育局发布2020年义务教育阶段学位预警及温馨提示:小一学位缺口7000个,初一学位缺口2500个;
2019年11月,深圳龙华教育局发布2020年深圳首个义务教育阶段学校新生学位预警,预计小一学位总缺口近8000个,初一学位总缺口近3000个。
只要教育资源的竞争依然存在,学区房的战争就不会停止。也许多年后,随着基础配套的逐步完善,这种竞争会趋于缓和,学区房也将成为历史。
但最现实的问题是,深圳每年新生儿数量高达20万,教育配套供应跟上来需要时间,但孩子的入学年龄却实实在在摆在眼前。
对于家庭购房者者来说,买房逻辑已经逐渐清晰:如果一定要买房,不如买学区房,不如趁早买学区房。
即使准备好了资金,想要买到“用得安心,住得舒心”的学区房仍然不是一件简单的事情。
对于竞争激烈的名校学区来说,买房+入户成为基础,购房年限、入户年限和社保年限等加分项成为决胜关键:购房相同户籍优先,户籍相同居住时间优先,居住时间相同社保优先。
(各区近年来的热门名校)
即使不求热门名校,深圳每个区的学位申请标准都不一样,每年也会做一定的调整,家长至少需要提前一年做准备。
针对今年学区房市场比较重要的变化,有购房打算的家长需要特别关注到三个方面。
虽然大学区制度仍未在深圳全面推行,但在深圳教育局2020年工作思路报告中,再次强调了“探索大学区建设”。
自2015年,深圳教育局推出招生新政——大学区制度,目前已有6个区试点大学区:罗湖、龙华、南山、福田、盐田、坪山。
大学区招生:即居住在大学区范围内的学生,可以自愿选择大学区内的多个学校为志愿学校,按个人意愿排列顺序。按全区统一的积分标准计算积分,按照志愿顺序及积分高低依次排序录取。(各区具体细则略有不同,以教育局公示为准)
对于购买了名校学区房的家长来说,被划入大学区无疑是一件让人头痛的事情。更大的招生范围,意味着更激烈的竞争,家长们只能寄希望于更多的加分项来拉开差距。
而对于正在筹备购买学区房的家长,更需要谨慎避雷,提前了解上一年学区内的招生情况,理性预判孩子能成功就读心仪学校的概率。
举个例子。近两年相当火热的光明,虽然没有宣布试点大学区,但是比较热门的深圳实验光明学校、光明区高级中学都是面向全区招生。这意味着,光明所有楼盘都可以声称自己是“名校学区房”。如果不事先了解区域招生政策,踩雷可是分分钟的事情。
最近,有家长爆料称,学位申请期间会被工作人员上门确认是否实际居住,还有家长称被多次敲门,没有实际居住将直接取消学位申请。
近年来,深圳一直强调就近入学,去年审查最严格的是福田和罗湖,今年其他区也陆续跟上。2020年明确要求实际居住的区域有:福田区、南山区、罗湖区、龙华区、龙岗区、光明区和坪山区。
从目前公布政策来看,确认是否实际居住,主要以社区网格中心登记的人口居住信息为依据,建议各位家长无论是买房还是租房,都尽快进行登记。
除了后台确认,个别区可能还会在学位申请阶段不定期上门确认,或者通过查水电费、煤气费等方式确定居住情况,如果低于一定标准,可能会影响到学位申请。
需要区分的是,就近入学不等于最近入学,在购房的时候一定要从各区教育局网站上查询具体的学区划分,避免后期不必要的纠纷。
毫无疑问的是,未来实际居住的审核标准会越来越严格,建议各位家长还是尽量在实际居住的片区申请学位,买房也要考虑到居住问题。
最近,关于学位锁定的问题特别多,总有家长到了学位申请季才发现自家的房子已经被锁定,学位被占用,导致孩子上学受影响。
近年来深圳学位锁定的范围不断扩大,除了大鹏新区仅在学位紧张片区实行学位锁定,其他9个区全部实行全区公办中小学学位锁定政策:福田、南山、罗湖、龙岗、龙华、光明、宝安、坪山和盐田。
按照最新的规定,学区内一套房屋只能供一户家庭(一对夫妻)的孩子申请学位(多个孩子不受影响),如果是祖父母、外祖父母名下的房子,只能允许其中一个子女家庭的孩子申请学位。
对于实行学位房制度的学校,学生在就读期间(小学6年,初中3年),该住房资料不可以再次用于其他家庭的孩子申请该学区该学校的学位。
此外,在学位房制度实施前,已经被用来上学的房屋不受影响。
但是制度实施后,房屋转卖给他人但原户主学生仍在读,或将房屋租给他人使用申请学位的,在锁定期内不可再次使用该房屋申请学位。建议各位家长申请学位前先查清楚房屋的学位锁定情况。
查询时间:每年新增锁定房屋信息会在9月、10月进行更新,到期解锁时间为3月,而学位申请一般在4、5月。家长有充足的时间查询,但还是尽快最好,以免临时发现学位占用,影响孩子入学。
查询方法:业主可以带上身份证和房产证到招生地段学校或者教育局基础教育科查询房屋是否被锁定。
(各区详细政策略有不同,具体以各区教育局公示为准。)
我们无法预测政策走向,但可以直接感受市场的变化。从各方面来看,对刚需家庭来说,当下并不是很好的时机。
经历了热热闹闹的2019年,深圳的房价显然已经到了一个小高位,尤其是小户型学区房。
格隆汇勾股大数据显示,2020年4月深圳二手房均价同比上涨15.8%,涨幅稳居全国第一。
Q房网数据显示,在第一季度,各区成交最火热的都是小户型,尤其是福田、罗湖这样的名校集中的区域,小户型学区房占比过半,价格已经水涨船高。
(图源Q房网)
从2014年之前就开始关注深圳楼市的购房者会发现,今天这一幕真的很熟悉,3年周期说来就来。回想当年,晚来一步的人,在高高的山岗上,一站就是很多年。
资金充足的购房者当然有钱任性就好,但对于刚需家庭来说,现在确实没有必要追高。
另一方面,深圳住建局近日多次出手整顿楼市,二手房指导价更是呼之欲出,热闹了一整年的深圳楼市,很有可能迎来一段相对平静的时期。届时,无论是购房者,还是卖家,也都能更理性的面对市场。
转自:https://mp.weixin.qq.com/s/2hOVKtfZwQFgSOtxM6k6Jg
危机四伏:1949年前后发生了什么?
猫哥按:最近国内舆论为疫情之后可能恶化的外部形势忧心忡忡。
这个问题我是这样看的,今年黑天鹅幺蛾子特别多,我也不能说未来欧美国家就一定不会向中国集体发难,但是就算是出现这种情况天也塌不下来!
今天我给大家讲述一段历史,一段新中国成立前后危机四伏的历史,一个一穷二白的中国,在面临美苏两大强国联手做局的情况下,是怎么化解危机,赢得主动的。
了解这段历史,我们就应该清楚,今天中国国力远超1949,外部环境也不会比那时更恶劣,1949我们都能度过难关,今天还有啥担忧的呢?
外蒙古(蒙古人民共和国)的现状须予维持;
维护苏联在大连商港的优先权益,并使该港国际化;
恢复旅顺港口苏俄海军基地的租借权;
中苏设立公司共同经营合办中长铁路、南满铁路,并保障苏联的优先利益;
同时维护中华民国在满洲完整的主权。
以上就是苏联对日宣战将拿到的红利。




公安曝光:“杀猪盘”、“杀鸟盘”、“杀鱼盘”……全揭秘!
01
杀猪盘
交友工具
“猪槽”
聊天话术
“饲料”
恋爱交往
“养猪”
实施诈骗
“杀猪”


02
杀鸟盘


03
杀鱼盘


骗子通过在社交游戏网络平台发布虚假广告,称可以提高信用卡额度,快速开通网络借贷,吸引那些急于用钱的人注意。鱼儿一旦动心,钓鱼手就开始试探。
首先,他会让你提供支付宝借呗额度、余额等信息,先看能骗多少钱。随后再以提额失败为由,让鱼儿完善几笔交易流水,并贴心地让鱼儿使用支付宝绑定一张没钱的银行卡来支付,这样既能留下交易流水记录,账单又会因为余额不足无法支付成功。
杀鱼手找链接手根据鱼儿花呗额度量身打造付款链接。前两次,杀鱼手会让鱼儿用没钱的银行卡支付,一般显示支付失败,鱼儿这时候会放松警惕。到了第三次,杀鱼手就发来链接让鱼儿选择用花呗支付,鱼儿没有防备点击支付,钱就购买了一些虚拟商品。
杀鱼手、链接手马上变现分钱。通常,商家得到卡面金额的10%—20%,(链接手、杀鱼手和钓鱼手)分别得到总金额的30%左右。


来源:临沂市反电信诈骗中心
转自:https://mp.weixin.qq.com/s/Vjz63Du9bV9S3uqg35mcNg
elasticsearch入门实战
1:安装:先去官网下载下载地址: https://www.elastic.co/downloads/elasticsearch 。我去,这也太慢了,200多MB要下到什么时候?赶紧找一个国内的镜像站,换到华为镜像,目前版本是7.6.2,所以访问 https://mirrors.huaweicloud.com/elasticsearch/7.6.2/ 我下载的是zip包,下载完成后直接解压。 同样访问 https://mirrors.huaweicloud.com/kibana/7.6.2/ 下载kibana
2:启动:双击elasticsearch.bat启动服务,命令行窗口会显示相关的信息,默认端口为9200。确认 elasticsearch 正确启动 $ curl -X GET 'http://localhost:9200/' -H 'Content-Type: application/json'
。curl需要安装cygwin,安装时注意填入国内镜像站地址,参见 http://www.zhushiyao.com/?p=23392
设置用户名密码(暂时不用)$ curl -X GET -u "elastic:changeme" 'http://localhost:9200/' -H 'Content-Type: application/json
双击 kibana-7.6.2-windows-x86_64\bin\kibana.bat 启动kibana,默认地址是 http://localhost:5601 ,配置文件在: $KIBANA_HOME/config/kibana.yml
3:建立索引:
$curl -XPUT ‘http://localhost:9200/twitter/_doc/3?pretty’ -H ‘Content-Type: application/json’ -d ‘
{
“user”: “elastic”,
“post_date”: “2010-01-15T01:46:38”,
“message”: “Building the site, should be kewl”
}’
通过上面方法写入到Elasticsearch的文档,在默认的情况下并不马上可以进行搜索。这是因为在Elasticsearch的设计中,有一个叫做refresh的操作。它可以使更改可见以进行搜索的操作。通常会有一个refresh timer来定时完成这个操作。这个周期为1秒。
也可以在kibana的dev tool里执行,
Console UI 分成两个窗格:编辑器窗格(左)和响应窗格(右)。使用编辑器键入请求并将它们提交到 Elasticsearch。结果将显示在右侧的响应窗格中。
4:检查索引存在。
$ curl -X GET 'http://localhost:9200/twitter/_doc/3?pretty=true'
5:搜索。
$ curl -XGET 'http://localhost:9200/twitter/_search?q=user:kimchy&pretty=true'
#指定索引里搜索
$curl -XGET ‘http://localhost:9200/twitter/_search?pretty=true’ -H ‘Content-Type: application/json’ -d ‘
{
“query” : {
“match” : { “user”: “kimchy” }
}
}’
以下命令使用的是 kibana dev tool
查看Elasticsearch信息
GET /
创建
PUT twitter/_doc/1
{
“user”: “GB”,
“uid”: 1,
“city”: “Beijing”,
“province”: “Beijing”,
“country”: “China”
}
修改
POST twitter/_doc/1
{
“user”: “GB”,
“uid”: 1,
“city”: “Shenzhen”,
“province”: “Guangdong”,
“country”: “China”
}
防止覆盖,如果文档已经存在的话,我们会收到一个错误的信息
PUT twitter/_create/1
{
“user”: “GB”,
“uid”: 1,
“city”: “Shenzhen”,
“province”: “Guangdong”,
“country”: “China”
}
查看文档
GET twitter/_doc/1
只查看source的内容
GET twitter/_doc/1/_source
只查看部分字段
GET twitter/_doc/1?_source=city,country
查看多个文档
GET _mget
{
“docs”: [
{
“_index”: “twitter”,
“_id”: 1
},
{
“_index”: “twitter”,
“_id”: 2
}
]
}
查看多个文档
GET twitter/_doc/_mget
{
“ids”: [“1”, “2”]
}
更新文档
POST twitter/_update/1
{
“doc”: {
“city”: “成都”,
“province”: “四川”
}
}
先查询,后修改
POST twitter/_update_by_query
{
“query”: {
“match”: {
“user”: “GB”
}
},
“script”: {
“source”: “ctx._source.city = params.city;ctx._source.province = params.province;ctx._source.country = params.country”,
“lang”: “painless”,
“params”: {
“city”: “上海”,
“province”: “上海”,
“country”: “中国”
}
}
}
处理名字是中文字段的文档
POST twitter/_update_by_query
{
“query”: {
“match”: {
“姓名”: “张彬”
}
},
“script”: {
“source”: “ctx._source[\”签到状态\”] = params[\”签到状态\”]”,
“lang”: “painless”,
“params” : {
“签到状态”:”已签到”
}
}
}
直接根据id来更新
POST twitter/_update/1
{
“script” : {
“source”: “ctx._source.city=params.city”,
“lang”: “painless”,
“params”: {
“city”: “长沙”
}
}
}
更新或插入
POST twitter/_update/3
{
“doc”: {
“user”: “GB”,
“uid”: 3,
“city”: “常德”,
“province”: “湖南”,
“country”: “China”
},
“doc_as_upsert”: true
}
GET twitter/_doc/3
检查一个文档是否存在
HEAD twitter/_doc/1
删除一个文档
DELETE twitter/_doc/1
搜索后进行删除
POST twitter/_delete_by_query
{
“query”: {
“match”: {
“city”: “上海”
}
}
}
批量处理
POST _bulk
{ “index” : { “_index” : “twitter”, “_id”: 1} }
{“user”:”双榆树-张三”,”message”:”今儿天气不错啊,出去转转去”,”uid”:2,”age”:20,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市海淀区”,”location”:{“lat”:”39.970718″,”lon”:”116.325747″}}
{ “index” : { “_index” : “twitter”, “_id”: 2 }}
{“user”:”东城区-老刘”,”message”:”出发,下一站云南!”,”uid”:3,”age”:30,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市东城区台基厂三条3号”,”location”:{“lat”:”39.904313″,”lon”:”116.412754″}}
{ “index” : { “_index” : “twitter”, “_id”: 3} }
{“user”:”东城区-李四”,”message”:”happy birthday!”,”uid”:4,”age”:30,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市东城区”,”location”:{“lat”:”39.893801″,”lon”:”116.408986″}}
{ “index” : { “_index” : “twitter”, “_id”: 4} }
{“user”:”朝阳区-老贾”,”message”:”123,gogogo”,”uid”:5,”age”:35,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市朝阳区建国门”,”location”:{“lat”:”39.718256″,”lon”:”116.367910″}}
{ “index” : { “_index” : “twitter”, “_id”: 5} }
{“user”:”朝阳区-老王”,”message”:”Happy BirthDay My Friend!”,”uid”:6,”age”:50,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市朝阳区国贸”,”location”:{“lat”:”39.918256″,”lon”:”116.467910″}}
{ “index” : { “_index” : “twitter”, “_id”: 6} }
{“user”:”虹桥-老吴”,”message”:”好友来了都今天我生日,好友来了,什么 birthday happy 就成!”,”uid”:7,”age”:90,”city”:”上海”,”province”:”上海”,”country”:”中国”,”address”:”中国上海市闵行区”,”location”:{“lat”:”31.175927″,”lon”:”121.383328″}}
查询到所有的输入的文档
POST twitter/_search
查询有多少条数据
GET twitter/_count
批量操作,index和create的区别。index总是可以成功,它可以覆盖之前的已经创建文档,但是create则不行,如果已经有以那个id为名义的文档,就不会成功
POST _bulk
{ “create” : { “_index” : “twitter”, “_id”: 1} }
{“user”:”双榆树-张三”,”message”:”今儿天气不错啊,出去转转去”,”uid”:2,”age”:20,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市海淀区”,”location”:{“lat”:”39.970718″,”lon”:”116.325747″}}
{ “index” : { “_index” : “twitter”, “_id”: 2 }}
{“user”:”东城区-老刘”,”message”:”出发,下一站云南!”,”uid”:3,”age”:30,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市东城区台基厂三条3号”,”location”:{“lat”:”39.904313″,”lon”:”116.412754″}}
{ “index” : { “_index” : “twitter”, “_id”: 3} }
{“user”:”东城区-李四”,”message”:”happy birthday!”,”uid”:4,”age”:30,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市东城区”,”location”:{“lat”:”39.893801″,”lon”:”116.408986″}}
{ “index” : { “_index” : “twitter”, “_id”: 4} }
{“user”:”朝阳区-老贾”,”message”:”123,gogogo”,”uid”:5,”age”:35,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市朝阳区建国门”,”location”:{“lat”:”39.718256″,”lon”:”116.367910″}}
{ “index” : { “_index” : “twitter”, “_id”: 5} }
{“user”:”朝阳区-老王”,”message”:”Happy BirthDay My Friend!”,”uid”:6,”age”:50,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市朝阳区国贸”,”location”:{“lat”:”39.918256″,”lon”:”116.467910″}}
{ “index” : { “_index” : “twitter”, “_id”: 6} }
{“user”:”虹桥-老吴”,”message”:”好友来了都今天我生日,好友来了,什么 birthday happy 就成!”,”uid”:7,”age”:90,”city”:”上海”,”province”:”上海”,”country”:”中国”,”address”:”中国上海市闵行区”,”location”:{“lat”:”31.175927″,”lon”:”121.383328″}}
用delete来删除一个已经创建好的文档
POST _bulk
{ “delete” : { “_index” : “twitter”, “_id”: 1 }}
用update来进行更新一个文档
POST _bulk
{ “update” : { “_index” : “twitter”, “_id”: 2 }}
{“doc”: { “city”: “长沙”}}
关闭一个index
POST twitter/_close
打开一个index
POST twitter/_open
冻结索引
POST twitter/_freeze
包含冻结索引做搜索
POST twitter/_search?ignore_throttled=false
解冻索引
POST twitter/_unfreeze
删除一个index
DELETE twitter
对于那些名字是中文字段的文档来说,在painless语言中,直接打入中文字段名字,并不能被认可
搜索所有的文档
GET /_search
GET /_all/_search
设定返回数(默认10个)
GET /_search?size=20
对多个index进行搜索
POST /index1,index2,index3/_search
对所有以index为开头的索引来进行搜索,排除index3
POST /index*,-index3/_search
搜索特定的index
GET twitter/_search
分页
GET twitter/_search?size=2&from=2
GET twitter/_search
{
“size”: 2,
“from”: 2,
“query”: {
“match_all”: {}
}
}
通过filter_path来控制输出的较少的字段
GET twitter/_search?filter_path=hits.total
通过_source来定义返回想要的字段
GET twitter/_search
{
“_source”: [“user”, “city”],
“query”: {
“match_all”: {
}
}
}
设置_source为false,这样不返回任何的_source信息
GET twitter/_search
{
“_source”: false,
“query”: {
“match”: {
“user”: “张三”
}
}
}
用script field来生成在_source里没有的field
GET twitter/_search
{
“query”: {
“match_all”: {}
},
“script_fields”: {
“years_to_100”: {
“script”: {
“lang”: “painless”,
“source”: “100-doc[‘age’].value”
}
},
“year_of_birth”:{
“script”: “2019 – doc[‘age’].value”
}
}
}
查询我们的索引里到底有多少文档
GET twitter/_count
满足条件的文档的数量
GET twitter/_count
{
“query”: {
“match”: {
“city”: “北京”
}
}
}
获得一个index的settings
GET twitter/_settings
设置
PUT twitter
{
“settings”: {
“number_of_shards”: 1,
“number_of_replicas”: 1
}
}
查询目前的index的mapping
GET twitter/_mapping
正确地创建我们的mapping,我们必须先把之前的twitter索引删除掉,并同时使用settings来创建这个index
删除索引
DELETE twitter
PUT twitter
{
“settings”: {
“number_of_shards”: 1,
“number_of_replicas”: 1
}
}
创建mapping
PUT twitter/_mapping
{
“properties”: {
“address”: {
“type”: “text”,
“fields”: {
“keyword”: {
“type”: “keyword”,
“ignore_above”: 256
}
}
},
“age”: {
“type”: “long”
},
“city”: {
“type”: “text”,
“fields”: {
“keyword”: {
“type”: “keyword”,
“ignore_above”: 256
}
}
},
“country”: {
“type”: “text”,
“fields”: {
“keyword”: {
“type”: “keyword”,
“ignore_above”: 256
}
}
},
“location”: {
“type”: “geo_point”
},
“message”: {
“type”: “text”,
“fields”: {
“keyword”: {
“type”: “keyword”,
“ignore_above”: 256
}
}
},
“province”: {
“type”: “text”,
“fields”: {
“keyword”: {
“type”: “keyword”,
“ignore_above”: 256
}
}
},
“uid”: {
“type”: “long”
},
“user”: {
“type”: “text”,
“fields”: {
“keyword”: {
“type”: “keyword”,
“ignore_above”: 256
}
}
}
}
}
查看 mapping
GET twitter/_mapping
批量导入
POST _bulk
{ “index” : { “_index” : “twitter”, “_id”: 1} }
{“user”:”双榆树-张三”,”message”:”今儿天气不错啊,出去转转去”,”uid”:2,”age”:20,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市海淀区”,”location”:{“lat”:”39.970718″,”lon”:”116.325747″}}
{ “index” : { “_index” : “twitter”, “_id”: 2 }}
{“user”:”东城区-老刘”,”message”:”出发,下一站云南!”,”uid”:3,”age”:30,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市东城区台基厂三条3号”,”location”:{“lat”:”39.904313″,”lon”:”116.412754″}}
{ “index” : { “_index” : “twitter”, “_id”: 3} }
{“user”:”东城区-李四”,”message”:”happy birthday!”,”uid”:4,”age”:30,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市东城区”,”location”:{“lat”:”39.893801″,”lon”:”116.408986″}}
{ “index” : { “_index” : “twitter”, “_id”: 4} }
{“user”:”朝阳区-老贾”,”message”:”123,gogogo”,”uid”:5,”age”:35,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市朝阳区建国门”,”location”:{“lat”:”39.718256″,”lon”:”116.367910″}}
{ “index” : { “_index” : “twitter”, “_id”: 5} }
{“user”:”朝阳区-老王”,”message”:”Happy BirthDay My Friend!”,”uid”:6,”age”:50,”city”:”北京”,”province”:”北京”,”country”:”中国”,”address”:”中国北京市朝阳区国贸”,”location”:{“lat”:”39.918256″,”lon”:”116.467910″}}
{ “index” : { “_index” : “twitter”, “_id”: 6} }
{“user”:”虹桥-老吴”,”message”:”好友来了都今天我生日,好友来了,什么 birthday happy 就成!”,”uid”:7,”age”:90,”city”:”上海”,”province”:”上海”,”country”:”中国”,”address”:”中国上海市闵行区”,”location”:{“lat”:”31.175927″,”lon”:”121.383328″}}
查询数据 match query
GET twitter/_search
{
“query”: {
“match”: {
“city”: “北京”
}
}
}
script search 比较低效
GET twitter/_search
{
“query”: {
“script”: {
“script”: {
“source”: “doc[‘city’].contains(params.name)”,
“lang”: “painless”,
“params”: {
“name”: “北京”
}
}
}
}
}
URI search
GET twitter/_search?q=city:”北京”
用filter来过滤
GET twitter/_search
{
“query”: {
“bool”: {
“filter”: {
“term”: {
“city.keyword”: “北京”
}
}
}
}
}
term 查询
GET twitter/_search
{
“query”: {
“constant_score”: {
“filter”: {
“term”: {
“city”: {
“value”: “北京”
}
}
}
}
}
}
指明一个专有的field来进行搜索
GET twitter/_search
{
“query”: {
“match”: {
“user”: {
“query”: “朝阳区-老贾”,
“operator”: “or”
}
}
}
}
GET twitter/_search
{
“query”: {
“match”: {
“user”: “朝阳区-老贾”
}
}
}
至少匹配3个字
GET twitter/_search
{
“query”: {
“match”: {
“user”: {
“query”: “朝阳区-老贾”,
“operator”: “or”,
“minimum_should_match”: 3
}
}
}
}
“and“操作
GET twitter/_search
{
“query”: {
“match”: {
“user”: {
“query”: “朝阳区-老贾”,
“operator”: “and”
}
}
}
}
multi_match搜索
GET twitter/_search
{
“query”: {
“multi_match”: {
“query”: “朝阳”,
“fields”: [
“user”,
“address^3”, //对address含有 “朝阳” 的文档的分数进行3倍的加权
“message”
],
“type”: “best_fields”
}
}
}
包含特定前缀的文档 Prefix query
GET twitter/_search
{
“query”: {
“prefix”: {
“user”: {
“value”: “朝”
}
}
}
}
精确的字词匹配 Term query
GET twitter/_search
{
“query”: {
“term”: {
“user.keyword”: {
“value”: “朝阳区-老贾”
}
}
}
}
多个terms进行查询
GET twitter/_search
{
“query”: {
“terms”: {
“user.keyword”: [
“双榆树-张三”,
“东城区-老刘”
]
}
}
}
复合查询(compound query)
GET twitter/_search
{
“query”: {
“bool”: {
“must”: [
{
“match”: {
“city”: “北京”
}
},
{
“match”: {
“age”: “30”
}
}
]
}
}
}
把一些满足条件的排出在外,使用must_not
GET twitter/_search
{
“query”: {
“bool”: {
“must_not”: [
{
“match”: {
“city”: “北京”
}
}
]
}
}
}
should。它表述“或”的意思,也就是有就更好,没有就算了
GET twitter/_search
{
“query”: {
“bool”: {
“must”: [
{
“match”: {
“age”: “30”
}
}
],
“should”: [
{
“match_phrase”: {
“message”: “Happy birthday”
}
}
]
}
}
}
位置查询
GET twitter/_search
{
“query”: {
“bool”: {
“must”: [
{
“match”: {
“address”: “北京”
}
}
]
}
},
“post_filter”: {
“geo_distance”: {
“distance”: “3km”,
“location”: {
“lat”: 39.920086,
“lon”: 116.454182
}
}
}
}
在5公里以内的所有位置信息,并按照远近大小进行排序 sort
GET twitter/_search
{
“query”: {
“bool”: {
“must”: [
{
“match”: {
“address”: “北京”
}
}
]
}
},
“post_filter”: {
“geo_distance”: {
“distance”: “5km”,
“location”: {
“lat”: 39.920086,
“lon”: 116.454182
}
}
},
“sort”: [
{
“_geo_distance”: {
“location”: “39.920086,116.454182”,
“order”: “asc”,
“unit”: “km”
}
}
]
}
范围查询
GET twitter/_search
{
“query”: {
“range”: {
“age”: {
“gte”: 30,
“lte”: 40
}
}
}
}
exists来查询一个字段是否存在
GET twitter/_search
{
“query”: {
“exists”: {
“field”: “city”
}
}
}
//准备的数据
PUT twitter/_doc/20
{
“user” : “王二”,
“message” : “今儿天气不错啊,出去转转去”,
“uid” : 20,
“age” : 40,
“province” : “北京”,
“country” : “中国”,
“address” : “中国北京市海淀区”,
“location” : {
“lat” : “39.970718”,
“lon” : “116.325747”
}
}
匹配短语
GET twitter/_search
{
“query”: {
“match”: {
“message”: “happy birthday”
}
}
}
match_phrase。它要求Happy必须是在birthday的前面
GET twitter/_search
{
“query”: {
“match_phrase”: {
“message”: “Happy birthday”
}
},
“highlight”: {
“fields”: {
“message”: {}
}
}
}
POST _bulk
{“index”:{“_index”:”twitter1″,”_id”:1}}
{“user”:”张庆”,”message”:”今儿天气不错啊,出去转转去”,”uid”:2,”age”:20,”city”:”重庆”,”province”:”重庆”,”country”:”中国”,”address”:”中国重庆地区”,”location”:{“lat”:”39.970718″,”lon”:”116.325747″}}
Multi Search API,使用单个API请求执行几次搜索
GET twitter/_msearch
{“index”:”twitter”}
{“query”:{“match_all”:{}},”from”:0,”size”:1}
{“index”:”twitter”}
{“query”:{“bool”:{“filter”:{“term”:{“city.keyword”:”北京”}}}}, “size”:1}
{“index”:”twitter1″}
{“query”:{“match_all”:{}}}
指定多个索引操作
GET twitter*/_search