上一页 1 2 3 4 5 6 7 8 9 10 ··· 22 下一页
摘要: BooleanQuery对两种不同查询场景执行不同的算法: 场景1: 所有的子句都必须满足,而且所有的子句里没有嵌套BooleanQuery。 例: 上面语句表示要同时包含a,b,c三个字符(词元)的文档,假如现在索引里包含a的文档有4,6,8;b的文档有:2,4,6;c的文档有:3,4,5,这个语 阅读全文
posted @ 2019-12-04 20:06 Birding 阅读(655) 评论(0) 推荐(0) 编辑
摘要: 如果在查询时写入的文档导致同一个查询结果不一样lucene是如何处理的? 先前查询的不会变化,但是新页的数据是按照新查询的结果分页得到。因为ES用了一个缓存,先前查询的不会再更新。 每一次查询都会把所有符合的文档和相应的打分加载到内存里,然后在内存里做排序、过滤、分页 阅读全文
posted @ 2019-11-04 16:48 Birding 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 在Lucene1.4.3中,queryParser和analysis分成独立的两个包,queryParser作用是解析查询语句,analysis作用是分词,queryParser在解析查询语句的时候会根据查询的类型调用analysis来对查询进行分词 阅读全文
posted @ 2019-10-31 15:08 Birding 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 目前我感觉加了Segment有两个好处: 1. 简化了写文档的逻辑,解耦了写文档和读文档。如果没有Segment在写文档的时候势必要修改整个索引,所以会影响到文档的读 2. 提升了写文档的速度,由于只是创建包含单个文档的Segment,所以速度比较快,而且由于包含新写文档的段里的数据都是排序好的,所 阅读全文
posted @ 2019-10-30 20:25 Birding 阅读(1187) 评论(0) 推荐(0) 编辑
摘要: 我看的是最初版的lucene,1.4.3 结论是新写入的文档会先写入内存中,只有当到达一定阈值后才会刷新进磁盘,而搜索可以搜索到的数据由最初定义IndexSearcher时磁盘里的段数据决定,如果想要新写入的文档能立马被搜索到,则需要将搜索客户端IndexSearcher刷新,在1.4.3里我看只有 阅读全文
posted @ 2019-10-30 17:01 Birding 阅读(242) 评论(0) 推荐(0) 编辑
摘要: Maximum Pause Time Goal: -XX:MaxGCPauseMillis=<nnn>Throughput Goal: -XX:GCTimeRatio=19 most objects survive for only a short period of time Default Ar 阅读全文
posted @ 2019-10-12 18:57 Birding 阅读(119) 评论(0) 推荐(0) 编辑
摘要: git config --global http.https://github.com.proxy https://127.0.0.1:1080git config --global https.https://github.com.proxy https://127.0.0.1:1080 作者:汪 阅读全文
posted @ 2019-08-28 14:27 Birding 阅读(600) 评论(0) 推荐(0) 编辑
摘要: 麻蛋,原来是最小堆呀! 数据结构不熟害死人呀! 看来待复习复习数据结构了 在lucene源码中对多个段合并的时候,会先将多个段放到一个PriorityQueue中,不要被这个名字迷惑,这个PriorityQueue和JDK的PriorityQueue是完全两个类,而且底层实现也完全不一样,lucen 阅读全文
posted @ 2019-08-20 11:33 Birding 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 用es也差不多一年左右了,但是都是只会用,底层做了什么一窍不通,没有核心竞争力,循序渐进,一个一个攻破,理解的多了,读的多了,自然能力就上去了,es底层是基于lucene的,所以今天先从lucene下手 如何看lucene代码? 现在的代码太多,可能会比较干扰阅读,我找了最初代的lucene代码,只 阅读全文
posted @ 2019-07-18 10:01 Birding 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 线程调度里thread_block方法在执行当前线程状态更新前把中断给关上了,然后调用schedule函数执行切换,schedule函数会将当前线程换下,从就绪队列里再pop队首线程上处理器执行,现在有两种情况,如果此时队首是一个新线程,则新线程会开中断,所以理论上就绪队列里的所有线程都有机会上处理 阅读全文
posted @ 2019-06-25 20:37 Birding 阅读(412) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 22 下一页