搜档网
当前位置:搜档网 › 9-分布式搜索Elasticsearch—创建客户端四

9-分布式搜索Elasticsearch—创建客户端四

9-分布式搜索Elasticsearch—创建客户端四

分布式搜索Elasticsearch——创建客户端(四)

分类:Elasticsearch 2013-01-07 13:52 198人阅读评论(0) 收藏举报org.elasticsearch.client.AdminClient的实现类有两个,如下所示:

org.elasticsearch.client.transport.support.InternalTransportAdminClie nt和org.elasticsearch.client.node.NodeAdminClient各自实现了一个构造子以及AdminClient接口的两个方法,这两个类的主要区别是,InternalTransportAdminClient针对内部传输,NodeAdminClient则侧重于对节点的管理。

ElasticSearch面试题

1:es介绍 Elasticsearch是一个基于Lucene的实时的分布式搜索和分析引擎。设计用于云计算中, 能够达到实时搜索,稳定,可靠,快速,安装使用方便。基于RESTful接口。 普通请求是...get?a=1 rest请求....get/a/1 2:全文搜索的工具有哪些 Lucene Solr Elasticsearch 3:es的bulk的引用场景 1.bulk API可以帮助我们同时执行多个请求 2.create 和index的区别 如果数据存在,使用create操作失败,会提示文档已经存在,使用index则可以成功执行。 3.可以使用文件操作 使用文件的方式 vi requests curl -XPOST/PUT localhost:9200/_bulk --data-binary @request; bulk请求可以在URL中声明/_index 或者/_index/_type 4.bulk一次最大处理多少数据量 bulk会把将要处理的数据载入内存中,所以数据量是有限制的 最佳的数据量不是一个确定的数值,它取决于你的硬件,你的文档大小以及复杂性,你的索引以及搜索的负载 一般建议是1000-5000个文档,如果你的文档很大,可以适当减少队列,大小建议是 5-15MB,默认不能超过100M, 可以在es的配置文件中修改这个值http.max_content_length: 100mb 5.版本控制的一个问题 在读数据与写数据之间如果有其他线程进行写操作,就会出问题,es使用版本控制才避免这种问题。 在修改数据的时候指定版本号,操作一次版本号加1。 6.es的两个web访问工具

elasticsearch学习文档

1.全文搜索引擎elasticsearch 1.1.Elasticsearch简介 Elasticsearch是开源的,分布式的,提供rest接口,支持云端调用的,构建在Apache Lucene之上的搜索引擎。 1.2.优点&缺点 优点:开箱即用,分布式,rest 接口,支持云端调用。 缺点:没有大量商业产品应用。分片的数目不能动态调整,只能在初始化索引的时候指定。 2.E lasticsearch的安装 2.1.运行环境 JDK6以上 2.2.下载Elasticsearch 为了更好的对中文进行分词,减少配置问题,下载集成分词的elasticsearch-rtf(基于elasticsearch 0.90.0,目前elasticsearch更新到0.90.5)版本。Rtf集成了ik、mmseg分词以及searchwrapper、thrift等插件。 什么是ElasticSearch-RTF? RTF是Ready To Fly的缩写,在航模里面,表示无需自己组装零件即可直接上手即飞的航空模型,elasticsearch-RTF是针对中文的一个发行版,即使用最新稳定的elasticsearch版本,并且帮你下载测试好对应的插件,如中文分词插件等,还会帮你做好一些默认的配置,目的是让你可以下载下来就可以直接的使用。下载地址如下:https://https://www.sodocs.net/doc/5e5659425.html,/medcl/elasticsearch-rtf

注释:分词是用于模糊匹配的时候,是把一段话当成词语还是当成单个字来搜索的规则。 2.3.安装 解压elasticsearch-rtf-mast.zip到你指定的目录下即可。 2.4.运行 2.4.1.启动服务 cd/usr/local/elasticsearch/bin/service ./elasticsearch start 第一次启动服务后,在/usr/local/elasticsearch目录生成data目录和logs目录2.4.2.停止服务 cd/usr/local/elasticsearch/bin/service ./elasticsearch stop 3.e lasticsearch配置文件详解 elasticsearch.yml配置文件内容较多,挑几个可能会用的说一下。 https://www.sodocs.net/doc/5e5659425.html,: elasticsearch 配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。 https://www.sodocs.net/doc/5e5659425.html,: "Franz Kafka" 节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt 文件中,其中有很多作者添加的有趣名字。 node.master: true 指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。 network.bind_host: 192.168.0.1

ElasticSearch使用手册

ElasticSearch使用手册 一、ElasticSearch简介 1.1.什么是ElasticSearch ElasticSearch(以下均检查ES)是Compass(基于Lucene开源项目)作者Shay Banon在2010年发布的高性能、实时、分布式的开源搜索引擎。后来成立了ElasticSearch公司,负责ES相关产品的开发及商用服务支持,ES依旧采用免费开源模式,但部分插件采用商用授权模式,例如Marvel插件(负责ES的监控管理)、Shield插件(提供ES的授权控制)。 1.2.ElasticSearch的基础概念 ?Collection 在SolrCloud集群中逻辑意义上的完整的索引。它常常被划分为一个或多个Shard,它们使用相同的Config Set。如果Shard数超过一个,它就是分布式索引,SolrCloud让你通过Collection名称引用它,而不需要关心分布式检索时需要使用的和Shard相关参数。 ?Config Set Solr Core提供服务必须的一组配置文件。每个config set有一个名字。最小需要包括solrconfig.xml (SolrConfigXml)和schema.xml (SchemaXml),除此之外,依据这两个文件的配置内容,可能还需要包含其它文件。它存储在Zookeeper中。Config sets可以重新上传或者使用upconfig命令更新,使用Solr的启动参数bootstrap_confdir指

定可以初始化或更新它。 ?Core Core也就是Solr Core,一个Solr中包含一个或者多个Solr Core,每个Solr Core可以独立提供索引和查询功能,每个Solr Core对应一个索引或者Collection的Shard,Solr Core的提出是为了增加管理灵活性和共用资源。在SolrCloud中有个不同点是它使用的配置是在Zookeeper中的,传统的Solr core的配置文件是在磁盘上的配置目录中。 ?Leader 赢得选举的Shard replicas。每个Shard有多个Replicas,这几个Replicas需要选举来确定一个Leader。选举可以发生在任何时间,但是通常他们仅在某个Solr实例发生故障时才会触发。当索引documents时,SolrCloud会传递它们到此Shard对应的leader,leader 再分发它们到全部Shard的replicas。 ?Replica Shard的一个拷贝。每个Replica存在于Solr的一个Core中。一个命名为“test”的collection以numShards=1创建,并且指定replicationFactor设置为2,这会产生2个replicas,也就是对应会有2个Core,每个在不同的机器或者Solr实例。一个会被命名为test_shard1_replica1,另一个命名为test_shard1_replica2。它们中的一个会被选举为Leader。 ?Shard

elasticSearch

ElasticSearch:可扩展的开源弹性搜索解决方案 开源的分布式搜索引擎支持时间时间索引和全文检索。 索引:index 存放数据 类型:type 区分储存的对象 文档:document 储存的主要实体 页面: field 角色关系对照 elasticsearch 跟 MySQL 中定义资料格式的角色关系对照表如下 MySQL elasticsearch database index table type table schema mapping row document field field http://localhost:9200/mishu_index/hunanzhaobiaowang/ _search?q=title:嘉禾县基本烟田土地整理施工 ElasticSearch官网:https://www.sodocs.net/doc/5e5659425.html,/ 先上一张elasticsearch的总体框架图:

ElasticSearch是基于Lucene开发的分布式搜索框架,包含如下特性: 分布式索引、搜索 索引自动分片、负载均衡 自动发现机器、组建集群 支持Restful 风格接口 配置简单等。 下图是ElasticSearch的第三方插件管理工具,通过它可以很清晰的看到它索引分布的情况:哪块分布在那里,占用空间多少都可以看到,并且可以管理索引。

当一台机挂了时,整个系统会对挂机里的内容重新分配到其它机器上,当挂掉的机重新加 入集群时,又会重新把索引分配给它。当然,这些规则都是可以根据参数进行设置的,非 常灵活。ElasticSearch是先把索引的内容保存到内存之中,当内存不够时再把索引持久化 到硬盘中,同时它还有一个队列,是在系统空闲时自动把索引写到硬盘中。 的后端存储方式可以有一下四种: 1. 像普通的 Lucene 索引,存储在本地文件系统中; 2. 存储在分布式文件系统中,如 freeds; 3. 存储在 Hadoop 的 hdfs中; 4. 存储在亚马逊的 S3 云平台中。 它支持插件机制,有丰富的插件。比如和 mongoDB、couchDB 同步的river 插件,分词插件,Hadoop 插件,脚本支持插件等。 下面介绍elasticsearch的几个概念: cluster 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产 生的,主从节点是对于集群内部来说的。es 的一个概念就是去中心化,字面上理解就是无 中心节点,这是对于集群外部来说的,因为从外部来看 es 集群,在逻辑上是个整体,与 任何一个节点的通信和与整个es 集群通信是等价的。在配置文件中可以配置集群的名字,在同一局域网内的机器,配置相同的cluster名字,将会自动组建集群,不需要其它特殊配置。 shards

Elasticsearch权威指南(中文版)

Elasticsearch 权威指南(中文版) 1、入门 Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度 处理大数据成为可能。 它用于全文搜索、结构化搜索、分析以及将这三者混合使用: 维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-as-you-type)和搜索纠错(did-you-mean)等搜索建议功能。 英国卫报使用Elasticsearch结合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时了解公众对新发表的文章的回应。StackOverflow结合全文搜索与地理位置查询,以及more-like-this功能来找到相关的问题和答案。 Github使用Elasticsearch检索1300亿行的代码。 但是Elasticsearch不仅用于大型企业,它还让像DataDog以及Klout这样的创业公司将最初的想法变成可扩展的解决方案。Elasticsearch可以在你的笔记本上运行,也可以在数以百计的服务器上处理PB级别的数据。Elasticsearch所涉及到的每一项技术都不是创新或者革命性的,全文搜索, 分析系统以及分布式数据库这些早就已经存在了。它的革命性在于将这些独立且有用的技术整合成一个一体化的、实时的应用。它对新用户的门槛很低,当然它也会跟上你技能和需求增长的步伐。 如果你打算看这本书,说明你已经有数据了,但光有数据是不够的,除非你能对这些数据做些什么事情。

很不幸,现在大部分数据库在提取可用知识方面显得异常无能。的确,它们能够通过时间戳或者精确匹配做过滤,但是它们能够进行全文搜索,处理同义词和根据相关性给文档打分吗?它们能根据同一份数据生成分析和聚合的结果吗?最重要的是,它们在没有大量工作进程(线程)的情况下能做到对数据的实时处理吗? 这就是Elasticsearch存在的理由:Elasticsearch鼓励你浏览并利用你的数 据,而不是让它烂在数据库里,因为在数据库里实在太难查询了。Elasticsearch是你新认识的最好的朋友。 1.1、是什么 为了搜索,你懂的 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。 Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。 不过,Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它: ?分布式的实时文件存储,每个字段都被索引并可被搜索 ?分布式的实时分析搜索引擎 ?可以扩展到上百台服务器,处理PB级结构化或非结构化数据

ElasticSearch5.1 基本概念和配置详解

二、几个基本概念 接近实时(NRT) Elasticsearch 是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个很小的延迟(通常是1 秒)。 集群(cluster) 代表一个集群,集群中有多个节点(node),其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。 索引(index)

ElasticSearch将它的数据存储在一个或多个索引(index)中。用SQL领域的术语来类比,索引就像数据库,可以向索引写入文档或者从索引中读取文档,并通过ElasticSearch内部使用Lucene将数据写入索引或从索引中检索数据。文档(document) 文档(document)是ElasticSearch中的主要实体。对所有使用ElasticSearch 的案例来说,他们最终都可以归结为对文档的搜索。文档由字段构成。 映射(mapping) 所有文档写进索引之前都会先进行分析,如何将输入的文本分割为词条、哪些词条又会被过滤,这种行为叫做映射(mapping)。一般由用户自己定义规则。类型(type) 每个文档都有与之对应的类型(type)定义。这允许用户在一个索引中存储多种文档类型,并为不同文档提供类型提供不同的映射。 分片(shards) 代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。 副本(replicas) 代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。 数据恢复(recovery)

ElasticSearch

ElasticSearch ES评估资料 通过开发机登陆hadoop03:9200/_plugin/sql 可以访问 ES调研结果 以下是我们对于ES的调研结果(调研主要是锦明完成的,我主要把各项数据总结一下) 我们已经在开发机上部署了ES以及ES SQL,ES Hadoop插件,大家如果要访问ES SQL的话可以通过开发机登陆 hadoop03:9200/_plugin/sql 1. 1. 使用方式: 目前在我们的环境中ES大致有下面三种使用方式可供先择: a) 调用Estate的restfule API/Java API用于做数据的增删改查。经测试这种方法效率最高 b) 布署ES-SQL插件,提供SQL的方式插入,删除,修改以及查询; c) 布置es-hadoop插件,将es与hive集成; 通过hive SQL进行数据的批量插入和查询 1. 2. 性能评估 测试对象:user_basic_es2,记录数目74228947,字段数70-80

使用方式 操作 API ES-SQL HIVE 批量插入7500万40mins(数据要提前准备好) 不支持90mins 批量更新7500万40mins(数据提前准备好)不支持现有配置Hive语法不支持更新 删除数据1s 1s 现有配置Hive方法不支持更新 单表查询-where过滤 1s 1s 60mins 单表查询-Group By 1s 1s 60mins Hive之所以查询慢是因为hive并没有用到ES的索引,查询的时候只是把数据都读了出来在map端进行过滤以及之后的操作,所以完全没法使用 而ES SQL会把查询翻译程API,然后使用API发起查询下面是几段测试SQL,都在1s返回结果: a) Select count(*) from user_basic_es2 ; b) Select address_city, gender, count(*) from user_basic_es2 group by address_city, gender c) Select count(*) from user_basic_es2 where gender=’male’ and address_city=’上’ (result 17274) d) Select user_id from user_basic_es2 where gender=’male’ (result 61647932) 从上面的结果来看,基本1-2s能返回查询结果 1. 3. 各种使用方式优缺点评估 优势 使用 方式 优势劣势适用场景 API 提供所有的ES功能;最快速需要开发应用来更新及展示数据需求很灵活的情况下 ES-SQL 使用方便;将SQL解析成ES 查询,所以响应快速 不支持数据的插入更新;不能与HIVE中的其他 数据一起使用 用于数据的查询 HIVE 可以同时访问存储在 HDFS/HBASE/ES中的数据 只将ES作为简单的数据存储,并不将SQL解 析成ES查询,所以速度最慢;不能分字段更新 数据,一次只能更新所有字段 用于将hive中的数 据算好以后批量存入 供后续查询 1. 4. ES占用的存储HDFS: 1.3GB ES: 42GB

大数据技术之elasticsearch【下】

大数据技术之Elasticsearch【下】 3.1.6 新建文档(源数据map方式添加json) 1)源代码 @Test public void createIndexByMap() { // 1 文档数据准备 Map json = new HashMap(); json.put("id", "2"); json.put("title", "基于Lucene的搜索服务器"); json.put("content", "它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口"); // 2 创建文档 IndexResponse indexResponse = client.prepareIndex("blog", "article", "2").setSource(json).execute().actionGet(); // 3 打印返回的结果 System.out.println("index:" + indexResponse.getIndex()); System.out.println("type:" + indexResponse.getType()); System.out.println("id:" + indexResponse.getId()); System.out.println("version:" + indexResponse.getVersion()); System.out.println("result:" + indexResponse.getResult()); // 4 关闭连接 client.close(); } 2)结果查看 3.1.7 新建文档(源数据es构建器添加json) 1)源代码

ElasticSearch基础知识

Elasticsearch介绍 Elasticsearch是个全文搜索服务器,简称ES,它相当于一个数据库,也有增删改查操作。为什么不直接用数据库呢?因为在全文搜索方面它比数据库更快、更智能。 更快:倒排索引,对文档分词,给每一个词建立索引,标记在那一条记录中有出现 更智能:对数据进行分词,分词之后进行标准化处理,它可以搜索匹配度、大小写、近义词等 Elasticsearch head和kibana两种客户端工具可选,使用Restfull风格的查询语句Elasticsearch和mysql结构对比 Restfull风格的查询语句

ES在wonder 的使用架构 索引index 由具有相同字段的文档列表组成,相当于mysql中的表。?每个索引都有自己的mapping定义,用于定义字段名和类型 ?索引中存储着具有相同结构的文档

节点Node 一个Elasticsearch的运行实例,集群的其中一个构成单元。 正排索引 维护文档id到内容、单词的关联关系,例如 倒排索引 MySQL like查询需要一行一行的查找,ES有了倒排索引就就能知道关键字在第几行出现了。加快了查询效率,标准化处理是搜索更加智能,意思大小写、匹配度、同义词、 维护单词到文档id的关联关系,例如 分片 分片是Elasticsearch在集群周围分发数据的单位。Elasticsearch在重新平衡数据时(例如发

生故障后)移动分片的速度取决于分片的大小和数量以及网络和磁盘性能。 文档Document 文档Document 核心数据类型 用户存储在es中的数据文档,相当于mysql的表中的一行,Json结构形式,由字段组成,常见数据类型如下: ●字符串:text、keyword,text是分词,keyword是不分词的 ●数值型:long、integer、short、byte、double、float、half_float、scaled_float ●布尔:boolean ●日期:date 不分词,必须全匹配 ●二进制:binary ●范围类型:integer_range、float_range、long_range、double_range、date_range

Elasticsearch工具类使用介绍

Elasticsearch工具类使用说明 目录 1. 连接Elasticsearch服务 (2) 2. 创建索引 (2) 3. 删除索引 (2) 4. 获取索引 (2) 5. 插入数据 (2) 6. 批量插入数据 (2) 7. 更新数据 (3) 8. 批量更新数据 (3) 9. 删除数据 (3) 10. 批量删除数据 (3) 11. 根据id查询数据 (3) 12. 根据id批量查询数据 (3) 13. 统计count (4) 14. 分组统计count (4) 15. 根据条件查询一条数据 (4) 16. 根据条件查询一批数据 (4) 17. 根据条件查询一页数据 (5) 18. 分组查询 (5) 19. 滚动查询数据 (6)

//第一种创建索引test impl.getElasticsearchUtil().createIndex("test"); // 第二种创建索引test,指定字段,分片数,副本数 List columns = new ArrayList<>(); Field col = new Field(); col.setName("city"); col.setType(Field.type_keyword); columns.add(col); Field col1 = new Field(); col1.setName("age"); col1.setType(Field.type_integer); columns.add(col1); Field col2 = new Field(); col2.setName("birth"); col2.setType(Field.type_date); col2.setFormat(Field.date_format_simple); columns.add(col2); impl.getElasticsearchUtil().createIndex("test", columns, 5, 1); 3.删除索引 // 删除索引test impl.getElasticsearchUtil().deleteIndex("test"); 4.获取索引 // 获取集群中所有的索引名称 List indices = impl.getAllIndexs(); 5.插入数据 // 插入数据 JSONObject data = new JSONObject(); data.put("id", "1");//id如果不指定,会自动生成uuid data.put("age", 43); data.put("city", "南京"); data.put("birth", "1975-10-12"); impl.addData("test", data, "id"); 6.批量插入数据 // 批量插入数据 List datas = new ArrayList<>(); JSONObject data1 = new JSONObject(); data1.put("id", "1"); data1.put("age", 43); data1.put("city", "南京");

Elasticsearch-权威指南(中文版)

Elasticsearch 权威指南(中文版) 1、入门 Elasticsearch 是一个实时分布式搜索和分析引擎。它让你以前所未有的速度 处理大数据成为可能。 它用于全文搜索、结构化搜索、分析以及将这三者混合使用: 维基百科使用Elasticsearch 提供全文搜索并高亮关键字,以及输入实时搜索(search-as-you-type) 和搜索纠错(did-you-mean) 等搜索建议功能。 英国卫报使用Elasticsearch 结合用户日志和社交网络数据提供给他们的编辑 以实时的反馈,以便及时了解公众对新发表的文章的回应。 StackOverflow 结合全文搜索与地理位置查询,以及more-like-this 功能 来找到相关的问题和答案。 Github 使用Elasticsearch 检索1300 亿行的代码。 但是Elasticsearch 不仅用于大型企业,它还让像DataDog 以及Klout这样 的创业公司将最初的想法变成可扩展的解决方案。Elasticsearch 可以在你的 笔记本上运行,也可以在数以百计的服务器上处理PB级别的数据。Elasticsearch 所涉及到的每一项技术都不是创新或者革命性的,全文搜索, 分析系统以及分布式数据库这些早就已经存在了。它的革命性在于将这些独立 且有用的技术整合成一个一体化的、实时的应用。它对新用户的门槛很低,当然它也会跟上你技能和需求增长的步伐。 如果你打算看这本书,说明你已经有数据了,但光有数据是不够的,除非你能对这些数

Elasticsearch 权威指南(中文版)据做些什么事情。

很不幸,现在大部分数据库在提取可用知识方面显得异常无能。的确,它们能够通过时间戳或者精确匹配做过滤,但是它们能够进行全文搜索,处理同义词和根据相关性给文档打分吗?它们能根据同一份数据生成分析和聚合的结果吗?最重要的是,它们在没有大量工作进程(线程)的情况下能做到对数据的实时处理吗? 这就是Elasticsearch 存在的理由:Elasticsearch 鼓励你浏览并利用你的数 据,而不是让它烂在数据库里,因为在数据库里实在太难查询了。 Elasticsearch 是你新认识的最好的朋友。 1.1、是什么 为了搜索,你懂的 Elasticsearch 是一个基于Apache Lucene(TM) 的开源搜索引擎。无论在开 源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接 集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入 了解检索的相关知识来理解它是如何工作的。 Elasticsearch 也使用Java开发并使用Lucene作为其核心来实现所有索引 和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂 性,从而让全文搜索变得简单。 不过,Elasticsearch 不仅仅是Lucene和全文搜索,我们还能这样去描述它: 分布式的实时文件存储,每个字段都被索引并可被搜索 分布式的实时分析搜索引擎 可以扩展到上百台服务器,处理PB级结构化或非结构化数据

全文搜索引擎 Elasticsearch 入门教程

全文搜索引擎 Elasticsearch 入门教 程 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic )是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow 、Github 都采用它。 Elastic 的底层是开源库 Lucene 。但是,你没法直接用 Lucene ,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。 本文从零开始,讲解如何使用 Elastic 搭建自己的全文搜索引擎。每一步都有详细的说明,大家跟着做就能学会。 一、安装 Elastic 需要 Java 8 环境。如果你的机器还没安装 Java ,可以参考这篇文章,注意要保证环境变量JAVA_HOME 正确设置。 安装完 Java ,就可以跟着官方文档安装 Elastic 。直接下载压缩包比较简单。 1 2 $ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-

3 5.5.1.zip $ unzip elasticsearch-5.5.1.zip $ cd elasticsearch-5.5.1/ 接着,进入解压后的目录,运行下面的命令,启动 Elastic 。 1 $ ./bin/elasticsearch 如果这时报错“max virtual memory areas vm.max map count [65530] is too low”,要运行下面的命令。 1 $ sudosysctl -w vm.max_map_count=262144 如果一切正常,Elastic 就会在默认的9200端口运行。这时,打开另一个命令行窗口,请求该端口,会得到说明信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $ curl localhost:9200 { "name" : "atntrTf", "cluster_name" : "elasticsearch", "cluster_uuid" : "tf9250XhQ6ee4h7YI11anA", "version" : { "number" : "5.5.1", "build_hash" : "19c13d0", "build_date" : "2017-07-18T20:44:24.823Z", "build_snapshot" : false, "lucene_version" : "6.6.0" }, "tagline" : "You Know, for Search" }

相关主题