01
<<富爸爸,穷爸爸>>书里面提到过,想要知道自己是富人还是穷人,最好的办法就是仔细收集自己说过的话,你经常说些什么话,就决定了你的思维和行动,最终决定了你是穷人还是富人.
思维 --> 语言 --> 行动 --> 结果
关注自己的语言,可以从自己的语言中找到自己的思维缺陷和漏洞.
从而学习相应的思维模型,减少犯错,过一个自己想要的人生.
02
也许我们很少会去收集自己平时说的最多的话.007社群里的同学都是喜欢写作的人,我们可以从我们每周一篇的文章中找到一些蛛丝马迹.
通过ElasticSearch可以很好的实现这个需求,即观察到你的常规思维.
03
首先我们要对ElasticSearch进行安装.因为需要用到中文分词器IK分词插件
,所以我们可以去Github下载.
可以直接使用项目: https://github.com/medcl/elasticsearch-rtf
当前的版本是 Elasticsearch 5.1.1,ik 插件也是直接自带了。
安装好 ElasticSearch,跑起来服务,测试服务安装是否正确:
$ curl http://localhost:9200
{
"name" : "Rkx3vzo",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Ww9KIfqSRA-9qnmj1TcnHQ",
"version" : {
"number" : "5.1.1",
"build_hash" : "5395e21",
"build_date" : "2016-12-06T12:36:15.409Z",
"build_snapshot" : false,
"lucene_version" : "6.3.0"
},
"tagline" : "You Know, for Search"
}```
04
为了方便对ElasticSearch的操作,我们可以在谷歌浏览器上安装SENSE插件
.
关于ES对应关系型数据库的对比如下:
mysql | ElasticSearch |
---|---|
DataBase | Index |
Table | Type |
Row | Document |
Column | Field |
Schema | Mapping |
Index | Everthing is indexed |
SQL | Query DSL |
Select * from table | GET http:// |
Update table set | PUT http:// |
- 首先我们创建一个索引和类型,也就是一个数据库和一张表,同时定义了表的字段,文章的标题和内容采用
ik分词器
PUT /renrensou
{
"mappings": {
"renrensou_v1": {
"properties": {
"title": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
},
"platform": {
"type": "text"
},
"author": {
"type": "text"
},
"name": {
"type": "text"
},
"date": {
"type": "text"
},
"content": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
},
"linkUrl": {
"type": "text"
}
}
}
}
}
- 然后我们可以采用爬虫技术,将自己的所有或是公众号文章爬取并导入到ElasticSearch,可以采用API的方式,也可以手动
PUT /renrensou/renrensou_v1/1
{
"title" : "打破你的认知边界",
"platform" : "",
"author" : "理可",
"name" : "理可",
"date" : "2018-11-20",
"content" : "我姓程,名序员,以前,我一直在用的开发工具是Eclipse.我写的第一个程序就是使用的Eclipse.所以我一直认为这是一个很好的工具. MyEcliipse 我们公司大多数同事用的是Eclipse.后来,公司新来了一个应届生同事,他告诉我,他用的工具是IntelliJ IDEA,完全没有用过Eclipse.给我说了IntelliJ IDEA的各种好处. 我虽然知道IntelliJ IDEA有很多好处,但是我不愿意改变,因为要我把开发工具换成IntelliJ IDEA,就表示我要离开自己的认知边界,这会让我很痛苦. IntelliJ IDEA 一开始我对IntelliJ IDEA有一些好奇,于是我尝试看一下网上的教程,并且安装了IntelliJ IDEA,尝试使用,但是很不舒服,因为两个工具的快捷键完全不一样,高频小套路也完全不一样,使用这个工具开发感觉自己就是个菜鸟. 尝试了好几次用IntelliJ IDEA开发,但是都放弃了.因为一开始总是在百度怎么使用IntelliJ IDEA,很浪费时间. 于是我重新下载安装了MyEclipse的最新版,并放弃了IntelliJ IDEA,告诉应届生同事,其实Eclipse也很好用. 后来我换工作了,我惊奇的发现,这家公司所有的程序员都在用IntelliJ IDEA,而只有我在用MyEclipse,我想他们讨教,他们说他们之前也有用Eclipse的,但是转成IntelliJ IDEA. 后来我也强迫自己转IDEA,让自己从零开始,卸载Eclipse.不到1天的时间,我掌握了IntelliJ IDEA的绝大多数高频小套路. 而我也发现我的开发效率得到了指数级的增长,而不是一点点的增长. 我认为是IntelliJ IDEA软件优化的比Eclipse更好,软件更加流畅并且是专门为程序开发人员设计.Eclipse在软件流畅和提升效率方面相比IntelliJ IDEA稍弱一点. 我从中得到了什么? 每个人会根据自己所在的群体和经验形成自己的认知边界,一个人的认知边界决定了一个人的认知高度 成长和进步的过程就是打破自己认知边界的过程 认知边界从内向外打破非常难 认知边界从外向内打破比较容易,比如有人带你,加入新的社群,换一个环境 每当打破自己的认知边界,就能获得数十倍到一百倍的增长.",
"linkUrl" : "https://www.jianshu.com/p/bfdafd7e63d6"
}
- 关于ES 5.x版本以上的,统计次频的字段需要开启
fielddata
PUT renrensou/_mapping/renrensou_v1/
{
"properties": {
"title": {
"type": "text",
"analyzer": "ik_max_word",
"fielddata": true
}
}
}
- 统计自己文章中的词频,显示结果会包含关键字和词频数量
GET /renrensou/renrensou_v1/_search
{
"size" : 0,
"aggs" : {
"messages" : {
"terms" : {
"size" : 100,
"field" : "content",
"include" : "[\u4E00-\u9FA5][\u4E00-\u9FA5]"
}
}
},
"highlight": {
"fields": {
"message": {}
}
}
}
05
结果显示我写的文章里面最多的词多是一些连接词,比如 如果,但是...
当然具体分析的时候可以去除掉这些连接词.下面是我筛选出来的排名前5的有意义词汇
[{
"key": "我们",
"doc_count": 28
},
{
"key": "时间",
"doc_count": 24
},
{
"key": "自己",
"doc_count": 24
},
{
"key": "过程",
"doc_count": 24
},
{
"key": "实现",
"doc_count": 23
}]
当然是这是ES很小的一个使用方法,使用ElasticSearch也可以打造一个专属自己的搜索引擎.