搜索
闲庭细步
我生本无乡,心安是归处。
展开
-
搭建我的搜索引擎,从Elastic Search开始
从现在开始到过年前搭建一个搜索引擎算是一个年中总结,不知不觉在搜索部门待了快一年了。原创 2015-11-09 11:08:08 · 759 阅读 · 0 评论 -
ElasticSearch源码解析(一):转一篇介绍中文分词的文章
主要讲ElasticSearch的以下几个方面:1、索引创建 2、分词(IK为例主要讲第三方分词库与es怎么对接) 3、query分析4、文件搜索 5、排序转载 2016-07-02 00:56:35 · 2565 阅读 · 0 评论 -
ElasticSearch源码解析(二):ES的CharFilter、Tokenizer、TokenizerFilter
CharFilterelasticsearch的CharFilter一共有2种分别是:HTMLStripCharFilter、MappingCharFilter。 HTMLStripCharFilter这是用来去除html标签的filter,主要的逻辑在read方法中:public int read() throws IOException { //输入字符的字节是否已读完原创 2016-07-04 00:18:15 · 5561 阅读 · 1 评论 -
ElasticSearch源码解析(三):索引创建
我们先来看看索引创建的事例代码: Directory directory = FSDirectory.getDirectory("/tmp/testindex"); // Use standard analyzer Analyzer analyzer = new StandardAnalyzer(); // Create IndexWriter object IndexWriter原创 2016-07-27 02:21:49 · 2859 阅读 · 0 评论 -
ElasticSearch源码解析(四):检索(Search)
聊ElasticSearch的检索过程,首先展示一个简单的java检索例子: Client client = new TransportClient.Builder() .settings(Settings.settingsBuilder().put("discovery.type", "zen") //发现集群方式原创 2016-08-05 13:58:23 · 3243 阅读 · 1 评论 -
ElasticSearch源码解析(五):排序(评分公式)
转载自:http://blog.csdn.net/molong1208/article/details/50623948一、目的一个搜索引擎使用的时候必定需要排序这个模块,一般情况下在不选择按照某一字段排序的情况下,都是按照打分的高低进行一个默认排序的,所以如果正式使用的话,必须对默认排序的打分策略有一个详细的了解才可以,否则被问起来为什么这个在前面,那个在后面不好转载 2016-08-11 22:59:44 · 5437 阅读 · 0 评论 -
开发一款开源爬虫框架系列(四):设计fetcher
这一期我们来聊聊怎么设计fetcher,既然说到设计,我们首先要明确设计的目的。fetcher的主要功能是根据传入的url获取网页内容,同时我们还面临如下一些问题:1、使用什么工具发出http请求下载网页?【答】使用最新的httpclient2、怎么提高下载的性能?【答】因为性能消耗主要在网络IO,那么我们要提高下载的性能可以使用线程池多线程并发下载网页,同时为了降低编程难度提高效原创 2016-11-11 02:01:30 · 1098 阅读 · 0 评论 -
开发一款开源爬虫框架系列(三):聊聊并发包中的队列(Queue)
说到队列尤其是阻塞队列,不得不说jdk的并发包(java.util.concurrent)中的相关数据结构,今天我们就来对java中的队列做一个总结。1、Queue队列接口,定义了队列基本的接口方法 前两个方法是往队列塞数据,在队列空间不足的情况下add会抛出异常,而offer会返回false。poll和peek的区别是后者不会从队列中移除元素。2、BlockingQu原创 2016-11-04 01:32:58 · 1464 阅读 · 0 评论 -
开发一款开源爬虫框架系列(五):爬虫架构的一些新思路
爬虫开源项目地址:http://git.oschina.net/coliza/MongooCrawler 以前的思路是由客户端完成所有的下载网页,解析等功能,服务器端负责从内存队列中拿到数据并将获取的对象输出到存储层。现在发现一个很麻烦的问题,不同的网站需要定制不同的抓取策略,如果部署爬虫集群,那么假如我要修改解析策略或存储策略,客户端或者服务器只能重写、编译、部署,而且服务端负原创 2016-11-25 01:34:49 · 3052 阅读 · 0 评论