Elasticsearch
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
Elasticsearch介绍
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
文章
更多-
java面试题经典20例【第五季_常瑞鹏】[2019-03-24]
1、面向对象的特征有哪些方面 1. 抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从... -
elasticsearch 实现联想输入搜索[2019-03-11]
通常,在项目中需要联想输入(即输入关键字,提示相关词条,类似百度google的搜索)的需求,可能大家都是用的数据库的like '%关键字%‘来实现。但是这样实现有几个问题。 第一、这样的搜索无论是oracle还是mysql,都是无法使用索引的。在oracle中可能有全文检索可以使用,但是个人感觉效果不是很好。 第二、输入的关键字有like的通病,就是只有保含关键字的词条才会被命中。如果中间加个空格 -
elasticsearch 添加字段[2019-03-11]
Elasticsearch中的mapping一旦创建,就不能再修改。但是添加字段是可以的。其实很简单,只需在原来的mapping上面直接新增加一个field,然后重新创建一下mapping就可以了。 原mapping的定义如下: private static XContentBuilder getMapping() throws Exception{ XContentBuilder mappin -
ElasticSearch 测试连接工具(TestConnection)[2019-03-11]
截止到0.90.x的版本,Elasticsearch已经将connectedNodes从api中去掉,具体代替的方法是什么呢?也没有找到相关的说明。 因此决定自己手工写一个工具类。其实,我们只有通过API去执行一个方法,就可以测试连接是否正常。测试的方法选定为获得集群node的信息。测试代码: import java.util.Map;import org.elasticsearch.action -
ElasticSearch入门-Get Mapping[2019-03-11]
想要在Java API中获得一个mapping 还真困难,以此铭记。 import org.elasticsearch.client.Client;import org.elasticsearch.cluster.ClusterState;import org.elasticsearch.cluster.metadata.IndexMetaData;import org.elasticsearch -
ElasticSearch入门-结构定义之Mapping[2019-03-11]
相当于数据库的表结构的定义,elasticsearch的mapping 也很重要。直接关系到性能及搜索结果的准确性。elasticsearch的java api的例子太少,我在这儿就献丑了。 为了说明mapping的定义,我这里定义了一个简单的模型,就ID,type,和catIds 3个属性,重在说明如何使用java api来定义mapping,具体各field应该如何定义,这里不做讨论。 pub -
Elasticsearch强大的聚合功能Facet[2019-03-11]
在常规数据库中,我们都知道有一个sql就是group,分组。如果主表只有对应的一个列记录的分组的ID,那么还好统计,比如说每本书book表,有一个分类catId,记录是属于哪一类的书,那么直接按照catId进行分组即可。可是在实际应用种,并非如此简单。一本书往往属于多个分类,比如:某本书既属于科技类书,又属于儿童类书,要求按照这两种条件进行筛选,都能筛选出来,如果要求按照分类进行统计数量,数据库怎 -
ElasticSearch入门-搜索如此简单[2019-03-11]
搜索引擎我也不是很熟悉,但是数据库还是比较了解。可以把搜索理解为数据库的like功能的替代品。因为like有以下几点不足: 第一、like的效率不行,在使用like时,一般都用不到索引,除非使用前缀匹配,才能用得上索引。但普通的需求并非前缀匹配。 第二、like的不能做到完全的模糊匹配。比如like '%化痰冲剂%'就不能把”化痰止咳冲剂“搜索出来。但是普通的用户,需求就是这样 第三、like无法 -
elasticsearch too many open files[2019-03-11]
详细解法见:http://www.elasticsearch.org/tutorials/too-many-open-files/ 总体意思是,在linux系统中,使用了非root用户启动的elasticsearch,但Linux对这些非特权用户打开的文件格式做了限制。导致elasticsearch报错。 修改方法,使用root编辑/etc/security/limits.conf,在最后面增加 -
ElasticSearch入门-Bulk,Search操作[2019-03-11]
其实在上一篇博客中,只要大家能看懂,就应该能够根据其代码做到举一反三了,依次类推ES的批量操作Bulk,搜索功能Search等,但在这里还是简单讲一下。 批量索引和删除 BulkRequestBuilder bulkRequest = client.prepareBulk(); for(int i=500;i<1000;i++){ //业务对象 String json =