
ElasticSearch
姚啊yao
-----
展开
-
Elasticsearch交互
与Elasticsearch交互如何与Elasticsearch交互取决于你是否使用Java。Java APIElasticsearch为Java用户提供了两种内置客户端:节点客户端(node client):节点客户端以无数据节点(none data node)身份加入集群,换言之,它自己不存储任何数据,但是它知道数据在集群中的具体位置,并且能够直接转发请求到对应的节点上。传输客户端(Trans...翻译 2018-03-01 15:54:06 · 420 阅读 · 0 评论 -
ElasticSearch映射
映射为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成全文本(Full-text)或精确的字符串值,Elasticsearch需要知道每个字段里面都包含了什么类型。这些类型和字段的信息存储(包含)在映射(mapping)中。正如《数据吞吐》一节所说,索引中每个文档都有一个类型(type)。 每个类型拥有自己的映射(mapping)或者模式定义(schema definition...翻译 2018-03-09 15:50:53 · 1008 阅读 · 0 评论 -
ElasticSearch查看分词结果
如下:GET googleplay/app/com.pearlabyss.blackdesertm/_termvectors?fields=name_krGET your_index/your_type/your_id/_termvectors?fields=your_fieldsName原创 2018-03-30 17:29:25 · 12061 阅读 · 0 评论 -
ElasticSearch查看集群状态
Elasticsearch中信息很多,同时ES也有很多信息查看命令,可以帮助开发者快速查询Elasticsearch的相关信息。_cat$ curl localhost:9200/_cat=^.^=/_cat/allocation/_cat/shards/_cat/shards/{index}/_cat/master/_cat/nodes/_cat/indices/_cat/ind...翻译 2018-04-26 15:09:19 · 7100 阅读 · 0 评论 -
Elasticsearch区分Analyzer之Tokenizer
Analyzer包含两个核心组件,Tokenizer以及TokenFilter。两者的区别在于,前者在字符级别处理流,而后者则在词语级别处理流。Tokenizer是Analyzer的第一步,其构造函数接收一个Reader作为参数,而TokenFilter则是一个类似的拦截器,其参数可以是TokenStream、Tokenizer。Tokenizer的类结构图:各类的介绍:1.Tokenizer输入...翻译 2018-04-28 15:35:39 · 5962 阅读 · 0 评论 -
全文检索的几个重要概念: Analyzer, tokenizer, token filter, char filter
Analyzer: The index analysis module acts as a configurable registry of Analyzers that can be used in order to both break indexed (analyzed) fields when a document is indexed and process query strings....原创 2018-04-28 15:41:27 · 737 阅读 · 0 评论 -
Elasticsearch数据去重(百万级别)
如果你对去重结果的精准度没有特殊要求,使用cardinality聚合函数 AggregationBuilders.cardinality("deviceCount").field("deviceID").precisionThreshold(自定义一个精度范围100-40000) 优点:性能快,亿级别的记录在1秒内完成 缺点:存...原创 2018-08-10 15:24:35 · 22507 阅读 · 3 评论 -
Elasticsearch set max_clause_count
修改Elasticsearch的config文件夹中的elasticsearch.yml文件,添加行: index.query.bool.max_clause_count: 10240Elasticsearch5以上版本: indices.query.bool.max_clause_count: 10240...原创 2018-09-13 11:13:30 · 3977 阅读 · 1 评论 -
Elasticsearch 5.*版本以上text和keyword的区别
keyword与text的区别: 在es 2.*版本里面是没有这两个字段,只有string字段。5.*之后,把string字段设置为了过时字段,引入text,keyword字段这两个字段都可以存储字符串使用,但建立索引和搜索的时候是不太一样的 keyword:存储数据时候,不会分词建立索引text:存储数据时候,会自动分词,并生成索引(这是很智能的,但在有些...原创 2018-10-11 10:25:20 · 3502 阅读 · 0 评论 -
Elasticsearch如何分片
大多数ElasticSearch用户在创建索引时通用会问的一个重要问题是:我需要创建多少个分片?在本文中, 我将介绍在分片分配时的一些权衡以及不同设置带来的性能影响. 如果想搞清晰你的分片策略以及如何优化,请继续往下阅读.为什么要考虑分片数分片分配是个很重要的概念, 很多用户对如何分片都有所疑惑, 当然是为了让分配更合理. 在生产环境中, 随着数据集的增长, 不合理的分配策略可能会给系...转载 2018-10-11 14:19:52 · 943 阅读 · 0 评论 -
ElasticSearch映射及分析是什么
映射(mapping)机制用于进行字段类型确认,将每个字段匹配为一种确定的数据类型(string, number, booleans, date等)。分析(analysis)机制用于进行全文文本(Full Text)的分词,以建立供搜索用的反向索引。...翻译 2018-03-09 14:47:10 · 385 阅读 · 0 评论 -
ElasticSearch的pretty有何作用
pretty在任意的查询字符串中增加pretty参数,会让Elasticsearch美化输出(pretty-print)JSON响应以便更加容易阅读。_source字段不会被美化,它的样子与我们输入的一致。...原创 2018-03-01 18:01:45 · 14474 阅读 · 0 评论 -
ElasticSearch是什么
为了搜索,你懂的Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。Elastic...翻译 2018-03-01 16:06:20 · 436 阅读 · 0 评论 -
ElasticSearch安装
为了搜索,你懂的Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。Elastic...翻译 2018-03-01 16:22:55 · 158 阅读 · 0 评论 -
ElasticSearch什么是文档
面向文档应用中的对象很少只是简单的键值列表,更多时候它拥有复杂的数据结构,比如包含日期、地理位置、另一个对象或者数组。总有一天你会想到把这些对象存储到数据库中。将这些数据保存到由行和列组成的关系数据库中,就好像是把一个丰富,信息表现力强的对象拆散了放入一个非常大的表格中:你不得不拆散对象以适应表模式(通常一列表示一个字段),然后又不得不在查询的时候重建它们。Elasticsearch是面向文档(d...翻译 2018-03-01 16:24:03 · 475 阅读 · 0 评论 -
ElasticSearch索引
开始第一步我们现在开始进行一个简单教程,它涵盖了一些基本的概念介绍,比如索引(indexing)、搜索(search)以及聚合(aggregations)。通过这个教程,我们可以让你对Elasticsearch能做的事以及其易用程度有一个大致的感觉。我们接下来将陆续介绍一些术语和基本的概念,但就算你没有马上完全理解也没有关系。我们将在本书的各个章节中更加深入的探讨这些内容。所以,坐下来,开始以旋风...翻译 2018-03-01 16:48:27 · 285 阅读 · 0 评论 -
ElasticSearch简单搜索
检索文档现在Elasticsearch中已经存储了一些数据,我们可以根据业务需求开始工作了。第一个需求是能够检索单个员工的信息。这对于Elasticsearch来说非常简单。我们只要执行HTTP GET请求并指出文档的“地址”——索引、类型和ID既可。根据这三部分信息,我们就可以返回原始JSON文档:GET /megacorp/employee/1响应的内容中包含一些文档的元信息,John Sm...翻译 2018-03-01 16:49:30 · 675 阅读 · 0 评论 -
ElasticSearch和传统数据库对比
Es对比于传统的数据库,关系如下:Relational DB -> Databases -> Tables -> Rows -> ColumnsElasticsearch -> Indices -> Types -> Documents -> FieldsElasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可...原创 2018-03-01 17:02:17 · 3578 阅读 · 0 评论 -
ElasticSearch简单检索文档
检索文档现在Elasticsearch中已经存储了一些数据,我们可以根据业务需求开始工作了。第一个需求是能够检索单个员工的信息。这对于Elasticsearch来说非常简单。我们只要执行HTTP GET请求并指出文档的“地址”——索引、类型和ID既可。根据这三部分信息,我们就可以返回原始JSON文档:GET /megacorp/employee/1响应的内容中包含一些文档的元信息,John Sm...翻译 2018-03-01 17:22:34 · 269 阅读 · 0 评论 -
ElasticSearch文档简单理解
什么是文档?程序中大多的实体或对象能够被序列化为包含键值对的JSON对象,键(key)是字段(field)或属性(property)的名字,值(value)可以是字符串、数字、布尔类型、另一个对象、值数组或者其他特殊类型,比如表示日期的字符串或者表示地理位置的对象。{ "name": "John Smith", "age": 42, "co...翻译 2018-03-01 17:50:49 · 744 阅读 · 1 评论 -
ElasticSearch文档ID的使用
文档通过index API被索引——使数据可以被存储和搜索。但是首先我们需要决定文档所在。正如我们讨论的,文档通过其_index、_type、_id唯一确定。们可以自己提供一个_id,或者也使用index API 为我们生成一个。使用自己的ID如果你的文档有自然的标识符(例如user_account字段或者其他值表示文档),你就可以提供自己的_id,使用这种形式的index API:PUT /{i...翻译 2018-03-01 17:56:11 · 22741 阅读 · 3 评论 -
Elasticsearch数组的理解
最近在对Elasticsearch对数组相似度处理的时候产生了疑惑: Elasticsearch在对数组做相似度处理的时候和对一串字符文档相似度处理的区别在哪里? (Elasticsearch 5.4版本)建立的索引结构如下:POST user{ "mappings": { "app": { "properties": { "appPackageNam...原创 2018-10-12 10:32:55 · 4010 阅读 · 0 评论