复合查询就是把一些简单查询组合在一起实现更复杂的查询需求,除此之外还可以控制另外一个查询的行为 constant_score queryconstant_source query 可以包装一个其它类型的查询,并返回匹配过滤器中的查询条件且具有相同评分的文档 下面的查询会返回 title 字段中含有关 ...
ElasticSearch词项查询
全文搜索在执行查询之前会分析查询字符串,词项搜索时对倒排序索引中存储的词项进行精确操作。常用于结构化数据,如数字、日期和枚举类型 term queryterm 查询用来查找指定字段中包含给定单词的文档,term 查询不被解析,只有查询词和文档中的词精确匹配才会被搜索到 GET books/_sear ...
ElasticSearch搜索机制
摘自《从Lucene到ElasticSearch:全文检索实战》 搜索流程图如下: 第一象限:用户 第二象限:原始文档 第三象限:ElasticSearch 第四象限:搜索结果 索引过程:原始文档有 title 和 content 两个字段,当把这条文档写入到 ElasticSearch 之后 ...
ElasticSearch全文查询
高级别的全文搜索通常用于在全文字段上进行全文搜索,通过全文查询理解被查询字段是如何被索引和分析的,在执行之前将每个字段的分词器应用于查询字符串(摘自《从Lucene到ElasticSearch:全文检索实战》) match querymatch query 会对查询语句进行分词,分词后查询语句中的任 ...
Netty相关重要类简介
摘自《Netty权威指南》 这里简单介绍Netty重要的类,深入了解可以参考《Netty权威指南》 ByteBuf当我们进行数据传输时,往往需要使用到缓冲区,常用的是JDK NIO类库提供的 java.nio.Buffer,但是它有如下缺点: ByteBuffer长度固定,一旦分配完成,容量不能动 ...
Netty线程模型(EventLoop、EventLoopGroup)
摘自《Netty权威指南》 在我们讨论Netty线程模型的时候,都会想到经典的Reactor线程模型 Reactor单线程模型Reactor单线程模型,是指所有的IO操作都在同一个NIO线程上面完成,NIO线程职责如下: 作为NIO服务端,接收客户端的TCP连接 作为NIO客户端,向客户端发起TC ...
Netty UDP协议开发
摘自《Netty权威指南》 介绍UDP是用户数据协议(User Datagram Protocol),作用是将网络数据流量压缩成数据报形式,提供面向事务的简单信息传送服务。与TCP不同,UDP直接利用IP协议进行UDP数据报的传输,它提供面向无连接的、不可靠的数据报投递服务 由于UDP具有资源消耗小 ...
Netty WebSocket协议开发
摘自《Netty权威指南》 HTTP协议弊端 HTTP协议为半双工协议,数据可以在客户端和服务端两个方向上传输,但是不能同时传输 HTTP消息冗长而繁琐,它包含消息头、消息体、换行符等,通常采用文本方式传输,相比于其它的二进制通信协议,冗长而繁琐 针对服务器推送的黑客攻击 WebSocket介绍W ...
Java 序列化的缺点
摘自《Netty权威指南》 JDK1.1版本提供了Java序列化,只需要实现 java.io.Serializable 接口并生成序列ID即可,但是在远程服务调用(RPC)时,很少使用Java序列化进行消息的编解码和传输 源码地址 无法跨语言由于Java序列化是Java语言内部的私有协议,其它语言并 ...
Java AIO编程
摘自《Netty权威指南》 JDK7 的 NIO2.0 引入了新的异步通道的概念,并提供了异步文件通道和异步套接字通道的实现。异步通道提供两种方式获取操作结果: 通过 java.util.concurrent.Future 类来表示异步操作的结果 在执行异步操作的时候传入一个 java.nio.c ...