lucene

全球最厉害的 14 位程序员,你认识几位?

爱⌒轻易说出口 提交于 2020-10-17 04:29:02
全球最厉害的 14 位程序员是谁? 一起来看下让我们膜拜的这些大神都有哪些? (以下排名不分先后) >>>> 01、Jon Skeet 个人名望: 程序技术问答网站 Stack Overflow 总排名第一的大神,每月的问答量保持在 425 个左右。 个人简介/主要荣誉: 谷歌软件工程师,代表作有《深入理解C#(C# In Depth)》。 网络上对Jon Skeet的评价: “他根本不需要调试器,只要他盯一下代码,错误之处自会原形毕露。” “如果他的代码没有通过编译的时候,编译器就会道歉。” “他根本不需要什么编程规范,他的代码就是编程规范。” 02、Gennady Korotkevich 个人声望: 编程大赛神童 个人简介/主要荣誉: 年仅 11 岁时便参加国际信息学奥林比克竞赛,创造了最年轻选手的记录。在 2007-2012 年间,总共取得 6 枚奥赛金牌;2013 年美国计算机协会编程比赛冠军队成员;2014 年 Facebook 黑客杯冠军得主。截止目前,稳居俄编程网站 Codeforces 声望第一的宝座,在 TopCoder 算法竞赛中暂列榜眼位置。 网络上对Gennady Korotkevich的评价: “一个编程神童。” “他太令人惊讶了,他相当于我在白俄罗斯建立了一支强大的编程队伍。” “彻底的编程天才。” 03、Linus Torvalds 个人名望:

solr在windows下的安装及配置

时光毁灭记忆、已成空白 提交于 2020-10-12 23:56:37
最近接触搜索相关的内容,所以熟悉下solr的使用以及如何在java中使用solr实现搜索功能。 1、solr简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 2、倒排索引 有的人会疑惑,搜索通过数据库也能直接查到为什么还要solr这类搜索引擎。例如我现在要搜索"solr"相关的内容,通过数据库模糊匹配%solr%可以查到,数量少的话查询速度还挺可观,如果数据量到达百万级千万级甚至更多,可能查出来得猴年马月了。 而solr用的倒排索引可以解决这一问题。 什么是倒排索引,先说下正排索引。 假如我有部分数据 文档id 文档内容 1 solr的使用以及如何在java中使用solr实现搜索功能 2 solr是一个独立的企业级搜索应用服务器 3 倒排索引和正排索引 4 搜索引擎 假如我要搜索solr,通过正排索引就是文档id作为索引,找到内容包含solr的文档。文档数量多了之后极大增加的搜索时间。 而倒排索引是将文档内容分词后建立索引。 单词内容 文档id solr 1,2 java 1 搜索 1,2,4 索引 3 服务器 2 此时我要搜索solr时直接通过单词内容索引,找到文档id列表

ElasticSearch优化系列四:ES的heap是如何被瓜分掉的

元气小坏坏 提交于 2020-10-07 04:38:27
以下分别解读几个我知道的内存消耗大户: Segment Memory Segment不是file吗?segment memory又是什么?前面提到过,一个segment是一个完备的lucene倒排索引,而倒排索引是通过词典(Term Dictionary)到文档列表(Postings List)的映射关系,快速做查询的。由于词典的size会很大,全部装载到heap里不现实,因此Lucene为词典做了一层前缀索引(Term Index),这个索引在Lucene4.0以后采用的数据结构是FST (Finite State Transducer)。这种数据结构占用空间很小,Lucene打开索引的时候将其全量装载到内存中,加快磁盘上词典查询速度的同时减少随机磁盘访问次数。 下面是词典索引和词典主存储之间的一个对应关系图: 说了这么多,要传达的一个意思就是,ES的data node存储数据并非只是耗费磁盘空间的,为了加速数据的访问,每个segment都有会一些索引数据驻留在heap里。因此segment越多,瓜分掉的heap也越多,并且这部分heap是无法被GC掉的! 理解这点对于监控和管理集群容量很重要,当一个node的segment memory占用过多的时候,就需要考虑删除、归档数据,或者扩容了。 怎么知道segment memory占用情况呢? CAT API可以给出答案。

搜索引擎ElasticSearch入门

人走茶凉 提交于 2020-10-07 04:25:11
前言 最近项目上需要用到搜索引擎,由于之前自己没有了解过,所以整理了一下搜索引擎的相关概念知识。 正文 想查数据就免不了搜索,搜索就离不开搜索引擎,百度、谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据。然而对于我们自己的业务数据来说,肯定就没必要用这么复杂的技术了,如果我们想实现自己的搜索引擎,方便存储和检索,可以快速地储存、搜索和分析海量数据。搜索引擎有很多种,我这里主要讲两种比较流行的搜索引擎框架 Elasticsearch 和 Lucene 搜索引擎。 一、搜索引擎实现核心 Lucene/Elasticsearch 实现快速搜索的核心就是倒排索引,Lucene/Elasticsearch 就是尽量将磁盘里的东西搬进内存,减少磁盘随机读取次数(同时也利用磁盘顺序读特性),结合各种压缩算法,高效使用内存,从而达到快速搜索的特性。 核心概念 : https://www.cnblogs.com/valor-xh/p/6206042.html ​ https://blog.csdn.net/sinat_42338962/article/details/85227902 二、Lucene搜索引擎 **百度百科:**是 Apache 软件基金会4 Jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包(实际就是一个 Jar 包)

ES千万级TPS写入性能翻倍,400台物理机因此下线

半世苍凉 提交于 2020-10-05 07:25:27
作者介绍 魏子珺, 滴滴专家工程师。 滴滴Elasticsearch引擎负责人,负责带领引擎团 队深入Elasticsearch内核,解决在海量规模下Elasticsearch遇到的稳定性、性能、成本方面的问题。 曾在盛大、网易工作,有丰富的引擎建设经验。 滴滴ElasticSearch平台承接了公司内部所有使用ElasticSearch的业务,包括核心搜索、RDS从库、日志检索、安全数据分析、指标数据分析等等。平台规模达到了3000+节点,5PB 的数据存储,超过万亿条数据。平台写入的峰值写入TPS达到了2000w/s,每天近 10 亿次检索查询。为了承接这么大的体量和丰富的使用场景,滴滴ElasticSearch需要解决稳定性、易用性、性能、成本等诸多问题。我们在4年多的时间里,做了大量优化,积攒了非常丰富的经验。通过建设滴滴搜索平台,打造滴滴ES引擎,全方位提升用户使用ElasticSearch体验。这次给大家分享的是滴滴在写入性能优化的实践,优化后,我们将ES索引的写入性能翻倍,结合数据冷热分离场景,支持大规格存储的物理机,给公司每年节省千万左右的服务器成本。 一、背景 前段时间,为了降低用户使用ElasticSearch的存储成本,我们做了数据的冷热分离。为了保持集群磁盘利用率不变,我们减少了热节点数量。ElasticSearch集群开始出现写入瓶颈

为什么使用 ElasticSearch(首更)

这一生的挚爱 提交于 2020-10-04 03:12:34
ElasticSearch 概述 Elaticsearch ,简称为 es , es 是一个开源的 高扩展 的 分布式全文检索引擎 ,它可以近乎 实时的存储、检 索数据 ;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别(大数据时代)的数据。 es 也使用 Java 开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单。 据国际权威的数据库产品评测机构 DB Engines 的统计,在 2016 年 1 月, ElasticSearch 已超过 Solr 等, 成 为排名第一的搜索引擎类应用。 历史 多年前,一个叫做 Shay Banon 的刚结婚不久的 失业开发者 ,由于妻子要去伦敦学习厨师,他便跟着也去 了。在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期版本的 Lucene 。 直接基于 Lucene 工作会比较困难,所以 Shay 开始抽象 Lucene 代码以便 Java 程序员可以在应用中添加搜 索功能。他发布了他的第一个开源项目,叫做 “Compass” 。 后来 Shay 找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,因此高性能的、实时 的、分布式的搜索引擎也是理所当然需要的。然后他决定重写

大数据技术发展(二):Hadoop 技术生态圈的发展

半世苍凉 提交于 2020-10-03 14:29:23
大家好,这里是抖码课堂,抖 码课堂专注提升互联网技术人的软硬实力。 在抖码课堂的公众号中可以听这篇文章的音频,体验更好~~~~ google 的"三驾马车" 我们在上一篇文章<大数据技术起源>中知道了,google 为了解决数据量越来越大的问题,开发了分布式存储技术 GFS 和分布式计算技术 MapReduce,这两个技术奠定了大数据技术的发展。如果 google 对这两个技术不开放出来的话,它的影响力也不会很大,可能很多人就不会知道这两个技术,但是 google 分别在 2003 年和 2004 年将这两个技术以论文的方式发布出来了,从而奠定开源大数据技术的发展,也就是我们现在免费使用的大数据技术 (Hadoop)。 要了解 Hadoop 的发展史,我们得先从 google 的"三驾马车"开始说起,google 分别在 2003 年、2004 年以及 2006 年发布了三篇论文: The Google File System,简称 GFS MapReduce:Simplified Data Processing on Large Clusters Bigtable:A Distributed Storage System for Structured Data 因为上面的三篇论文拉开了开源大数据技术的帷幕,所以我们通俗的将它们叫做"三驾马车",可见,这三篇论文的重要性了。