es
文章平均质量分 82
es相关技术介绍
赶路人儿
一个十年以上编程人员,擅长使用java、python、C++等语言,具有广告投放、个性化推荐引擎等超大规模系统开发经验。
展开
-
elasticsearch版本介绍
介绍elasticsearch 是一个高可扩展、开源的全文搜索、分析引擎。可以近实时的用来存储、搜索和分析大数据。关键词:近实时(Near Real Time) 高可用、水平扩展 分布式存储、搜索、分析引擎官网:https://www.elastic.co/cn/官网文档:https://www.elastic.co/guide/index.html官网文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/inde原创 2020-10-28 11:24:00 · 5063 阅读 · 0 评论 -
es 数据类型
官网地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html核心数据类型1、字符串类型:es6中,string类型已经被废弃了,需要使用text、keyword类型来代替。1)text类型:当一个字段需要用于全文搜索(会被分词),比如产品名称、产品描述信息, 就应该使用text类型。该类型字段会通过分析器转成terms list,然后存入索引。该类型字段不用于排序、聚合操作。原创 2020-10-15 16:38:48 · 5191 阅读 · 1 评论 -
Elasticsearch三种分页方式
Elasticsearch中数据都存储在分片中,当执行搜索时每个分片独立搜索后,数据再经过整合返回。那么,如何实现分页查询呢?按照一般的查询流程来说,如果我想查询前10条数据:客户端请求发给某个节点 节点将请求转发到集群其他节点,各节点返回是否包含该请求信息,然后该节点再发送二次请求给具体包含该query倒排的节点上进行计算,查询每个分片上的前10条 结果返回给节点,整合数据,提取前10条 返回给请求客户端那么当我想要查询第10条到第20条的数据该怎么办呢?这个时候就用到分页查询了。在Ela原创 2020-10-13 21:43:47 · 8800 阅读 · 1 评论 -
使用es的head插件进行简单搜索
有的时候为了快速从es中查询数据,可以使用head插件来进行搜索。如下图:输入es地址和端口(9200),再后面跟上index和index_type,然后再指定_search和post方式,最后在下面输入dsl语句。根据时间范围的一个查询:原创 2018-02-26 12:03:16 · 7425 阅读 · 0 评论 -
elasticsearch集群架构
1、es中几个基本概念:集群(Cluster)一组拥有共同的 cluster name 的节点。节点(Node) 集群中的一个 Elasticearch 实例。索引(Index) 相当于关系数据库中的database概念,一个集群中可以包含多个索引。这个是个逻辑概念。主分片(Primary shard) 索引的子集,索引可以切分成多个分片,分布到不同的集群节点上。分片对应的是 Luce原创 2018-01-05 14:47:30 · 2158 阅读 · 0 评论 -
elasticsearch-java api之搜索(三)
前两篇文章介绍了es的简单查询、聚合查询;本文再重点介绍一下es的复杂查询,包括:排序、limit、复合查询等。1、排序:1)代码public static void sortQuery(String indexName, String indexType) { QueryBuilder qb = QueryBuilders.termQuery("team", "war");原创 2017-12-06 10:35:26 · 3336 阅读 · 0 评论 -
elasticsearch-java api之搜索(二)——聚合
前面一篇文章描述了es一些基本搜索的用法(match、term、fruzzy、matchPhraseQuery等),这篇文章我们着重讲解一下聚合查询的用法。假设es中有如下数据1、group by /count:select team,count(*) from table group by team;1)代码:public static void aggre1Quer原创 2017-12-06 09:50:29 · 1887 阅读 · 0 评论 -
elasticsearch-java api之过滤
一、过滤相关点:1、查询与过滤:Elasticsearch 使用的查询语言(DSL) 拥有一套查询组件,这些组件可以以无限组合的方式进行搭配。这套组件可以在以下两种情况下使用:过滤情况(filtering context)和查询情况(query context)。当使用于 过滤情况 时,查询被设置成一个“不评分”或者“过滤”查询。即,这个查询只是简单的问一个问题:“这篇文档是否匹配原创 2017-12-05 11:03:05 · 11170 阅读 · 0 评论 -
elasticsearch-java api之搜索(一)
1、全文搜索两个最重要的方面是:1)相关性(Relevance)它是评价查询与其结果间的相关程度,并根据这种相关程度对结果排名的一种能力,这种计算方式可以是 TF/IDF 方法(参见 相关性的介绍)、地理位置邻近、模糊相似,或其他的某些算法。2)分析(Analysis)它是将文本块转换为有区别的、规范化的 token 的一个过程,(参见 分析的介绍) 目的是为了(a)创建倒排索引以原创 2017-12-04 17:07:51 · 4318 阅读 · 0 评论 -
elasticsearch-java api之文档(document)各种操作
使用java api和es交互时,可以是json字符串、map对象;es中内置Jackson json序列化机制,可以将自定义对象转成string或者byte,然后传给es-java api使用。1、添加document:public static boolean add(String indexName,String indexType,Map data){ IndexRespo原创 2017-12-04 14:36:06 · 7561 阅读 · 1 评论 -
elasticsearch-java api之索引(index)的各种操作
1、创建索引:1)简单索引——没有指定mappingpublic static boolean createIndex(String indexName) { IndicesAdminClient indicesAdminClient = transportClient.admin() .indices(); CreateIndexResponse response = i原创 2017-12-04 10:23:10 · 16510 阅读 · 5 评论 -
es jar包冲突问题
es本身依赖了许多其他第三方包,在使用es-java api时,如果引用不当会造成jar包冲突无法使用。1、默认情况下, 使用es-java api,主需要引入如下的maven信息即可: org.elasticsearch elasticsearch 2.3.2 2、java.lang.NoSuchMethodError:com.原创 2017-11-14 17:02:37 · 2574 阅读 · 1 评论 -
elasticsearch-java api中get() 和execute().actionGet()方法
我们平时使用api在进行各种操作的时候,如:query、document的增删改查等等,都会看到最后会调用.get()或者.execute().actionGet()方法。例如:IndexResponse actionGet = transportClient .prepareIndex(indexName, indexType) .setSource(data) .e原创 2017-11-04 16:29:47 · 8505 阅读 · 0 评论 -
elasticsearch-java api之client
Elasticsearch 的Java API 提供了非常便捷的方法来索引和查询数据等。 通过添加jar包,不需要编写HTTP层的代码就可以开始着手进行连接到Elasticsearch的工作。它提供了两种方法连接到Elasticsearch:创建一个本地节点并加入集群(cluster),或者利用传输(transport)。这两种方法都是利用一个Client(org.elasticsearch.cl原创 2017-11-04 16:18:57 · 1374 阅读 · 0 评论 -
elasticsearch基础知识以及创建索引
一、基础概念:1、索引:索引(index)是elasticsearch的一个逻辑存储,可以理解为关系型数据库中的数据库,es可以把索引数据存放到一台服务器上,也可以sharding后存到多台服务器上,每个索引有一个或多个分片,每个分片可以有多个副本。2、索引类型(index_type):在es中,一个索引对象可以存储多个不同用途的对象,通过索引类型(index_type)可以区分单原创 2017-11-13 17:12:14 · 78312 阅读 · 3 评论 -
elasticsearch 短语查询(match_phrase)
1、match_phrase就像 match 查询对于标准全文检索是一种最常用的查询一样,当你想找到彼此邻近搜索词的查询方法时,就会想到 match_phrase 查询 。GET /my_index/my_type/_search{ "query": { "match_phrase": { "title": "quick brown fox翻译 2017-10-27 15:55:28 · 8993 阅读 · 0 评论 -
ES查询-match VS match_phrase
我们以一个查询的示例开始,我们在student这个type中存储了一些学生的基本信息,我们分别使用match和match_phrase进行查询。首先,使用match进行检索,关键字是“He is”:GET /test/student/_search{ "query": { "match": { "description": "He is" } }}执转载 2017-10-27 15:04:59 · 30955 阅读 · 6 评论