12 2017 档案

摘要:1. 概念 共享锁: 共享读操作,但只能一个写(读可以同时,但写不能)。共享锁防止其他正在运行的程序获得重复的独占锁,但是允许他们获得重复的共享锁。独占锁: 只有一个读或一个写(读和写都不能同时)。独占锁防止其他程序获得任何类型的锁。 2. FileLock FileChannel.lock(lon 阅读全文
posted @ 2017-12-27 16:18 車輪の唄 阅读(14) 评论(0) 推荐(0) 编辑
摘要:概述 标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。非阻塞IO:例如:当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情。当数据被写入到缓冲区时,线程可以继续处理它。从缓冲区 阅读全文
posted @ 2017-12-26 17:23 車輪の唄 阅读(25) 评论(0) 推荐(0) 编辑
摘要:测试证明, flush操作是直接写入磁盘, 而且是每个索引链或者说每个DWPT写入一个segment, 但是只flush不commit, 在closeIndexWriter时, 所有写入磁盘的数据会回滚, 即被删除 flush动作不是将内存中缓存的索引写入磁盘, 而是写入操作系统缓冲区??? 只有I 阅读全文
posted @ 2017-12-22 18:08 車輪の唄 阅读(16) 评论(0) 推荐(0) 编辑
摘要:有限自动机算法(FST,Finite State Transducer):通过输入有序字符串构建最小有向无环图。通过共享前缀来节省空间,内存存放前缀索引,磁盘存放后缀词块 1、紧凑的结构,通过对词典中单词前缀和后缀的重复利用,压缩了存储空间。 2、O(len(str))的查询时间复杂度。 lucen 阅读全文
posted @ 2017-12-20 10:45 車輪の唄 阅读(189) 评论(0) 推荐(0) 编辑
摘要:lucene中存在的两种锁, 第一种, 针对每个索引文件目录有一个锁, 该锁保证了只有一个IndexWriter实例写该目录 第二种, 在每个IndexWriter实例下, 有一个ThreadState对象池, 默认大小为8(该对象池也被称为线程池, 但实际上他只是一个锁池), 具体参见点击打开链接 阅读全文
posted @ 2017-12-16 13:55 車輪の唄 阅读(27) 评论(0) 推荐(0) 编辑
摘要:当一个方法后面声明可能会抛出InterruptedException 异常时,说明该方法是可能会花一点时间,但是可以取消的方法。 抛InterruptedException的代表方法有: 1. java.lang.Object 类的 wait 方法 2. java.lang.Thread 类的 sl 阅读全文
posted @ 2017-12-14 22:35 車輪の唄 阅读(10) 评论(0) 推荐(0) 编辑
摘要:public class FinalReferenceTest { public static final StringBuffer sb = new StringBuffer(); public static void main(String[] args){ sb.append("hello") 阅读全文
posted @ 2017-12-13 16:59 車輪の唄 阅读(12) 评论(0) 推荐(0) 编辑
摘要:1. 随机读写文件类RandomAccessFile简介: 1) Java提供了一种功能特别强大的文件读写类:RandomAccessFile 2) 我们都知道File只能对文件进行创建、删除、改名等操作,但要读写文件的内容必须要经过流的包装; 3) 而RandomAccessFile虽然名字是以F 阅读全文
posted @ 2017-12-13 16:13 車輪の唄 阅读(26) 评论(0) 推荐(0) 编辑
摘要:1. 所有的组合关系都是对OR而言, AND连接符不予分析 2. MUST_NOT和其他语句连接在一起时, 只做过滤, 不参与打分 3. editionkey:(13 25 ) 代表筛选出 13或15 -editionkey:(13 25 )代表过滤掉13 和 15 阅读全文
posted @ 2017-12-10 17:40 車輪の唄 阅读(16) 评论(0) 推荐(0) 编辑
摘要:主要用于过滤查询和将multiTermQuery rewrite为原子查询后使用的查询对象, 他会返回一个constantquery A query that wraps another query or a filter and simply returns a constant score eq 阅读全文
posted @ 2017-12-09 09:58 車輪の唄 阅读(11) 评论(0) 推荐(0) 编辑
摘要:IndexSearcher(Searcher).createWeight(Query) 代码如下: protected Weight createWeight(Query query) throws IOException { return query.weight(this); } Boolean 阅读全文
posted @ 2017-12-09 09:53 車輪の唄 阅读(13) 评论(0) 推荐(0) 编辑
摘要:query树是由booleanQuery连接起来的,其叶子节点必然是termquery或是multiTermQuery termQuery的rewrite返回本身,而multiTermQuery的rewrite最终会返回一个个原子query 1、BoostingQuery BoostingQuery 阅读全文
posted @ 2017-12-09 09:52 車輪の唄 阅读(19) 评论(0) 推荐(0) 编辑
摘要:lucene中String类型的查询表达式最终会被QueryParse解析为各种Query对象, 直接使用查询表达式和直接使用Query对象的不同在于前者需要配置分词器进行分词, 而后者所见即所得没有分词过程 QueryParser parser = new MyQueryParser(versio 阅读全文
posted @ 2017-12-08 15:07 車輪の唄 阅读(12) 评论(0) 推荐(0) 编辑
摘要:执行后会保证numdocs和maxdocs值相同, 优化过程是重建索引段, 将删除的doc从segment中彻底删除, 也就是合并.del 和 .liv文件 通过以下对比可以看出优化操作也在进行段合并, 下图中num docs 和max doc之所以不想等, 是因为在这期间有索引更新 阅读全文
posted @ 2017-12-07 16:53 車輪の唄 阅读(10) 评论(0) 推荐(0) 编辑
摘要:1、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道、FIFO、消息队列) 同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量) 共享内存(匿名的和具名的) 远程过程调用 但这些都不是本文的主题!我们要讨论的是网络中进程之间如何通信?首要解 阅读全文
posted @ 2017-12-07 09:52 車輪の唄 阅读(12) 评论(0) 推荐(0) 编辑
摘要:Character类是一个包装类。 char这种数据类型是基于原始的Unicode编码的,储存一个char用16个bit,因此定义characters也是16位定长的实体集合。 Unicode编码标准发生了变化,数量级从\uFFFF到了\u10FFFF 对Unicode标准中的所有字符,16位已经是 阅读全文
posted @ 2017-12-07 09:46 車輪の唄 阅读(19) 评论(0) 推荐(0) 编辑
摘要:1.lucen源码下载 http://archive.apache.org/dist/lucene/java/ 2.下载下来,发现不是project文件,需要用ivy和ant,弄成project文件:可参考http://blog.csdn.net/ccit0519/article/details/8 阅读全文
posted @ 2017-12-06 18:06 車輪の唄 阅读(21) 评论(0) 推荐(0) 编辑
摘要:在九个节点上设置三个shard三个replica,指定在每个节点上均匀分配的创建collection方式 curl 'http://localhost:8991/solr/admin/collections?action=CREATE&name='$name'&numShards=3&replica 阅读全文
posted @ 2017-12-01 11:50 車輪の唄 阅读(15) 评论(0) 推荐(0) 编辑
摘要:HashSet不能添加重复的元素,当调用add(Object)方法时候,首先会调用Object的hashCode方法判hashCode是否已经存在,如不存在则直接插入元素; 如果已存在则调用Object对象的equals方法判断是否返回true,如果为true则说明元素已经存在,如为false则插入 阅读全文
posted @ 2017-12-01 09:54 車輪の唄 阅读(12) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示