首页 > 编程开发 > 全文搜索 > Elasticsearch

Elasticsearch介绍

2016-03-30 23:34:14
ElasticSearch 是一个基于Lucene构建的开源、分布式、RESTful的全文搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。 Elasticsearch可以解决零配置和一个完全免费的搜索模式,可以简单地使用JSON通过HTTP的索引数据,提供高可用和平行扩展,实时搜索等。 2012年11月,获得1000万美
分类:Elasticsearch 浏览次数(803)

elasticsearch 实现联想输入搜索

2013-08-11 09:33:38
通常,在项目中需要联想输入(即输入关键字,提示相关词条,类似百度google的搜索)的需求,可能大家都是用的数据库的like '%关键字%‘来实现。但是这样实现有几个问题。 第一、这样的搜索无论是oracle还是mysql,都是无法使用索引的。在oracle中可能有全文检索可以使用,但是个人感觉效果不是很好。 第二、输入的关键字有like的通病,就是只有保含关键字的词条才会被命中。如果中间加个空格
分类:Elasticsearch 浏览次数(9246)

elasticsearch 添加字段

2013-08-11 09:29:28
Elasticsearch中的mapping一旦创建,就不能再修改。但是添加字段是可以的。其实很简单,只需在原来的mapping上面直接新增加一个field,然后重新创建一下mapping就可以了。 原mapping的定义如下: private static XContentBuilder getMapping() throws Exception{ XContentBuilder mappin
分类:Elasticsearch 浏览次数(4049)

ElasticSearch 测试连接工具(TestConnection)

2013-08-11 09:27:54
截止到0.90.x的版本,Elasticsearch已经将connectedNodes从api中去掉,具体代替的方法是什么呢?也没有找到相关的说明。 因此决定自己手工写一个工具类。其实,我们只有通过API去执行一个方法,就可以测试连接是否正常。测试的方法选定为获得集群node的信息。测试代码: import java.util.Map;import org.elasticsearch.action
分类:Elasticsearch 浏览次数(2881)

ElasticSearch入门-Get Mapping

2013-08-11 09:27:02
想要在Java API中获得一个mapping 还真困难,以此铭记。 import org.elasticsearch.client.Client;import org.elasticsearch.cluster.ClusterState;import org.elasticsearch.cluster.metadata.IndexMetaData;import org.elasticsearch
分类:Elasticsearch 浏览次数(3681)

ElasticSearch入门-结构定义之Mapping

2013-08-11 09:26:01
相当于数据库的表结构的定义,elasticsearch的mapping 也很重要。直接关系到性能及搜索结果的准确性。elasticsearch的java api的例子太少,我在这儿就献丑了。 为了说明mapping的定义,我这里定义了一个简单的模型,就ID,type,和catIds 3个属性,重在说明如何使用java api来定义mapping,具体各field应该如何定义,这里不做讨论。 pub
分类:Elasticsearch 浏览次数(2257)

Elasticsearch强大的聚合功能Facet

2013-08-11 09:22:57
在常规数据库中,我们都知道有一个sql就是group,分组。如果主表只有对应的一个列记录的分组的ID,那么还好统计,比如说每本书book表,有一个分类catId,记录是属于哪一类的书,那么直接按照catId进行分组即可。可是在实际应用种,并非如此简单。一本书往往属于多个分类,比如:某本书既属于科技类书,又属于儿童类书,要求按照这两种条件进行筛选,都能筛选出来,如果要求按照分类进行统计数量,数据库怎
分类:Elasticsearch 浏览次数(9053)

ElasticSearch入门-搜索如此简单

2013-08-11 09:19:19
搜索引擎我也不是很熟悉,但是数据库还是比较了解。可以把搜索理解为数据库的like功能的替代品。因为like有以下几点不足: 第一、like的效率不行,在使用like时,一般都用不到索引,除非使用前缀匹配,才能用得上索引。但普通的需求并非前缀匹配。 第二、like的不能做到完全的模糊匹配。比如like '%化痰冲剂%'就不能把”化痰止咳冲剂“搜索出来。但是普通的用户,需求就是这样 第三、like无法
分类:Elasticsearch 浏览次数(3613)

elasticsearch too many open files

2013-08-11 09:15:42
详细解法见:http://www.elasticsearch.org/tutorials/too-many-open-files/ 总体意思是,在linux系统中,使用了非root用户启动的elasticsearch,但Linux对这些非特权用户打开的文件格式做了限制。导致elasticsearch报错。 修改方法,使用root编辑/etc/security/limits.conf,在最后面增加
分类:Elasticsearch 浏览次数(1963)

ElasticSearch入门-Bulk,Search操作

2013-08-11 09:14:46
其实在上一篇博客中,只要大家能看懂,就应该能够根据其代码做到举一反三了,依次类推ES的批量操作Bulk,搜索功能Search等,但在这里还是简单讲一下。 批量索引和删除 BulkRequestBuilder bulkRequest = client.prepareBulk(); for(int i=500;i<1000;i++){ //业务对象 String json =
分类:Elasticsearch 浏览次数(2009)

ElasticSearch入门-增删改查(CRUD)

2013-08-11 09:11:50
ElasticSearch(名称太长,后面简称ES)作为一个搜索引擎,目前可谓是如日中天,几乎和solr齐驾并驱。关于他能做什么,跟云计算有什么关系,在此不再描述。但是ES的官方文档,特别是关于java的客户端文档,真是少的可怜,甚至连个完整的增删改的示例都没有。在此,我就献丑了。 在开始讲解之前,还是先做个铺垫,为了能够有一个可以索引的模型,我们自定义了一个模型,暂时起个名称叫LogModel吧
分类:Elasticsearch 浏览次数(10857)

ElasticSearch入门- 设置分片副本数量及putMapping

2013-08-09 00:39:02
在之前的一篇文章中,写到如何创建mapping。里面只是简单的创建了一个mapping。其实,这种比较重要并且一旦建立无法修改的操作还是需要仔细规划的。 今天我介绍设置index的分片数量及副本数量,即创建索引的如何指定分片的个数及副本的个数。分片的个数在创建之后是无法再增加和减少的,除非你另外建一个索引库,而副本是可以在运行的时候,动态增加和减少。因此,在创建索引库时,规划好分片(Shard)是
分类:Elasticsearch 浏览次数(3747)

Elasticsearch一些基础概念理解

2013-08-07 13:37:05
熟悉ES中的几个关键概念: 节点(Node):一个elasticsearch运行的实例,其实就是一个java进程。一般情况下,一台机器运行在一台机器上。 集群(Cluster): 好几个有相同集群名称的节点(Node)。 索引(Index):有点象数据库。 类型(Type):可以看做是数据库中的标 分片(Shard):就是一个lucene index。每个index都会划分成几个shard。每个s
分类:Elasticsearch 浏览次数(3840)

elasticsearch结合spring springmvc jest 使用做成WEB架构

2013-08-01 00:08:46
上一篇文章,说到了先利用jest junit构架一个ES的搜索入门例子...现在准备要做一个ES的WEB架构例子,希望大家都学习学习ES分布式搜索引擎,真的非常不错的...欢迎大家一起讨论讨论... 做成WEB的架构,当然我不用servlet了...直接使用spring springmvc去做吧...也当是一个ES跟spring springmvc 集成的例子,为了简单起见
分类:Elasticsearch 浏览次数(5250)

elasticsearch RESTful搜索引擎-(java jest 使用[入门])

2013-07-31 23:49:15
elasticsearch简称ES jest 好吧下面我介绍下jest(第三方工具),个人认为还是非常不错的...想对ES用来更好,多多研究源代码吧...迟点,会写一些关于ES的源代码研究文章,现在暂时还是入门的阶段.哈..(不敢,不敢) 它是ES的java客户端,基于http restful... jest是开源的....其他就不清楚了,看源代码吧..哈.
分类:Elasticsearch 浏览次数(3397)

专题教程

  • Elasticsearch教程

    Elasticsearch教程

    ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例。像Solr4一样,是基于Lucene构建的,支持时间时间索引和全文检索。