03 2018 档案

摘要:1.java模式之策略模式 分别封装行为接口,实现算法族,超类里放行为接口对象,子类里具体设定行为对象。 原则就是:分离变化部分,封装接口,基于接口编程各种功能。 此模式让行为算法的变化独立于算法的使用者。 2.java模式之观察者模式 对象之间多对一依赖的一种设计方案,被依赖的对象为subject 阅读全文
posted @ 2018-03-22 22:41 秦先生的客栈 阅读(164) 评论(0) 推荐(0)
摘要:概念 TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会 阅读全文
posted @ 2018-03-17 13:00 秦先生的客栈 阅读(2011) 评论(0) 推荐(0)
摘要:1、默认的分词器 standard standard tokenizer:以单词边界进行切分standard token filter:什么都不做lowercase token filter:将所有字母转换为小写stop token filer(默认被禁用):移除停用词,比如a the it等等 2 阅读全文
posted @ 2018-03-11 22:02 秦先生的客栈 阅读(665) 评论(0) 推荐(0)
摘要:一个field的设置是不能被修改的,如果要修改一个Field,那么应该重新按照新的mapping,建立一个index,然后将数据批量查询出来,重新用bulk api写入index中 批量查询的时候,建议采用scroll api,并且采用多线程并发的方式来reindex数据,每次scoll就查询指定日 阅读全文
posted @ 2018-03-11 21:58 秦先生的客栈 阅读(324) 评论(0) 推荐(0)
摘要:停用词主要是为了提升性能与精度。从早期的信息检索到如今,我们已习惯于磁盘空间和内存被限制为很小一部分,所以 必须使你的索引尽可能小。 每个字节都意味着巨大的性能提升。 词干提取的重要性不仅是因为它让搜索的内容更广泛、让检索的能力更深入,还因为它是压缩索引空间的工具。一种最简单的减少索引大小的方法就是 阅读全文
posted @ 2018-03-11 21:50 秦先生的客栈 阅读(1153) 评论(0) 推荐(0)
摘要:1、创建索引 创建索引的语法PUT /my_index{ "settings": { ... any settings ... }, "mappings": { "type_one": { ... any mappings ... }, "type_two": { ... any mappings 阅读全文
posted @ 2018-03-09 22:01 秦先生的客栈 阅读(4335) 评论(0) 推荐(0)
摘要:如果一次性要查出来比如10万条数据,那么性能会很差,此时一般会采取用scoll滚动查询,一批一批的查,直到所有数据都查询完处理完 使用scoll滚动搜索,可以先搜索一批数据,然后下次再搜索一批数据,以此类推,直到搜索出全部的数据来scoll搜索会在第一次搜索的时候,保存一个当时的视图快照,之后只会基 阅读全文
posted @ 2018-03-09 21:59 秦先生的客栈 阅读(1286) 评论(0) 推荐(0)
摘要:搜索的时候,要依靠倒排索引;排序的时候,需要依靠正排索引,看到每个document的每个field,然后进行排序,所谓的正排索引,其实就是doc values。在建立索引的时候,一方面会建立倒排索引,以供搜索用;一方面会建立正排索引,也就是doc values,以供排序,聚合,过滤等操作使用。doc 阅读全文
posted @ 2018-03-09 21:42 秦先生的客栈 阅读(1894) 评论(0) 推荐(0)
摘要:grep -rnRi 指定的内容 * | awk -F":" '{print $1}' 解释: grep 查找文件内容 -r 表示递归查找 -n 表示显示行号 -R 表示查找所有文件包含子目录 -i 表示忽略大小写 * 代表所有文件 | 管道符 awk 截取命令 -F 表示指定分隔符 ":" 表示本 阅读全文
posted @ 2018-03-08 22:06 秦先生的客栈 阅读(2191) 评论(0) 推荐(0)
摘要:GET /company/employee/_search { "query": { "constant_score": { "filter": { "range": { "age": { "gte": 30 } } } } }, "sort": [{ "join_date": { "order": 阅读全文
posted @ 2018-03-08 21:31 秦先生的客栈 阅读(442) 评论(0) 推荐(0)
摘要:GET /test_index/test_type/_validate/query?explain{ "query": { "math": { "test_field": "test" } }} { "valid": false, "error": "org.elasticsearch.common 阅读全文
posted @ 2018-03-08 21:30 秦先生的客栈 阅读(173) 评论(0) 推荐(0)
摘要:1、filter与query示例PUT /company/employee/2{ "address": { "country": "china", "province": "jiangsu", "city": "nanjing" }, "name": "tom", "age": 30, "join_ 阅读全文
posted @ 2018-03-08 21:27 秦先生的客栈 阅读(824) 评论(0) 推荐(0)
摘要:GET /test_index/_search{ "query": { "bool": { "must": { "match": { "name": "tom" }}, "should": [ { "match": { "hired": true }}, { "bool": { "must": { 阅读全文
posted @ 2018-03-07 21:36 秦先生的客栈 阅读(24448) 评论(0) 推荐(0)
摘要:只能创建index时手动建立mapping,或者新增field mapping,但是不能update field mapping 1、手动建立mappingPUT /website{ "mappings": { "article": { "properties": { "author_id": { 阅读全文
posted @ 2018-03-07 21:34 秦先生的客栈 阅读(541) 评论(0) 推荐(0)
摘要:(1)往es里面直接插入数据,es会自动建立索引,同时建立type以及对应的mapping (2)mapping中就自动定义了每个field的数据类型 (3)不同的数据类型(比如说text和date),可能有的是exact value,有的是full text (4)exact value,在建立倒 阅读全文
posted @ 2018-03-07 21:31 秦先生的客栈 阅读(6793) 评论(0) 推荐(0)
摘要:1、es分页语法GET /_search?from=起始数&size=页面显示条数例如:GET /test_index/test_type/_search?from=0&size=3 2、deep paging什么是deep paging?简单来说,就是搜索的特别深,比如总共有60000条数据,有3 阅读全文
posted @ 2018-03-06 22:07 秦先生的客栈 阅读(1396) 评论(0) 推荐(0)
摘要:GET /_search?timeout=10ms默认情况下,es的timeout机制是关闭的。比如,如果你的搜索特别慢,每个shard都要花好几分钟才能查询出来所有的数据,那么你的搜索请求也会等待好几分钟才会返回。我们有些应用系统对时间是非常敏感的,比如说电商网站,你不能让用户等10分钟,才能等到 阅读全文
posted @ 2018-03-06 22:05 秦先生的客栈 阅读(3398) 评论(0) 推荐(0)
摘要:1、bulk api奇特的json格式{"action":{"meta"}}\n{"data"}\n{"action":{"meta"}}\n{"data"}\n 2、如果采用比较良好的json数组格式[{ "action":{ "meta" }, "data":{ }}]允许任意的换行,整个可读性 阅读全文
posted @ 2018-03-06 22:03 秦先生的客栈 阅读(301) 评论(0) 推荐(0)
摘要:1、客户端发送请求到任意一个node,成为coordinate node2、coordinate node对document进行路由,将请求转发到对应的node,此时会使用round-robin随机轮询算法,在primary shard以及其所有replica shard中随机选择一个,让读请求负载 阅读全文
posted @ 2018-03-05 21:28 秦先生的客栈 阅读(190) 评论(0) 推荐(0)
摘要:(1)consistency,one(primary shard),all(all shard),quorum(default)我们在发送任何一个增删改操作的时候,比如 PUT /index/type/id,都可以带上一个consistency参数,指明我们想要的写一致性是什么。PUT /index 阅读全文
posted @ 2018-03-05 21:21 秦先生的客栈 阅读(296) 评论(0) 推荐(0)
摘要:(1)document数据路由的理解:我们知道,一个index的数据会被分为多片,每片都在一个shard中,所以说,一个document,只能存在于一个shard中。当客户端创建document的时候,es此时就需要决定,这个document是放在这个index的哪个shard上。这个过程就称之为d 阅读全文
posted @ 2018-03-05 21:17 秦先生的客栈 阅读(243) 评论(0) 推荐(0)
摘要:除了delete以外,每个操作需要两个json字符串,语法如下:{"action":{"metadata"}}{"data"}bulk api对json字符串的语法有严格的要求,每个json串不能换行,只能放在一行,同时json串和json串之间必须有一个换行 有哪些类型的操作可以执行?1、dele 阅读全文
posted @ 2018-03-04 21:46 秦先生的客栈 阅读(163) 评论(0) 推荐(0)
摘要:1、不同index的批量查询GET /_mget{ "docs":[{ "_index":"test_index1", "_type":"test_type1", "_id":1 },{ "_index":"test_index2", "_type":"test_type1", "_id":1 }] 阅读全文
posted @ 2018-03-04 21:45 秦先生的客栈 阅读(161) 评论(0) 推荐(0)
摘要:1、内部脚本("script" : "ctx._source" 是内部定义好的获取_source数据的方式,不用改变)POST /index/type/id/_update{ "script" : "ctx._source.field=any_result"} 2、外部脚本定义一个外部脚本,名称为a 阅读全文
posted @ 2018-03-04 21:43 秦先生的客栈 阅读(3214) 评论(0) 推荐(0)