当前搜索:

[ElasticSearch]ElasticSearch,Kibana安装与启动

1. 检查JDK版本使用如下命令检验JDK版本:xiaosi@Qunar:~$ java -version java version "1.7.0_40" Java(TM) SE Runtime Environment (build 1.7.0_40-b43) Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode) xiaosi...
阅读(371) 评论(0)

[ElasticSearch2.x]原理之分布式搜索

这个要比基本的创建-读取-更新-删除(CRUD)请求要难一些。CRUD操作是处理的单个文档。这就意味着我们明确的知道集群中的哪个分片存储我们想要的文档。一个 CRUD 操作只对单个文档进行处理,文档有唯一的组合,由 _index, _type, 和 路由值 (默认是该文档的 _id )组成。 这表示我们确切的知道此文档在集群中哪个分片中。搜索请求是更复杂的执行模型,因为我们不知道哪些文档会与查询匹...
阅读(241) 评论(0)

[ElasticSearch]嵌套对象之嵌套类型

nested类型是一种特殊的对象object数据类型(specialised version of the object datatype ),允许对象数组彼此独立地进行索引和查询。1. 对象数组如何扁平化内部对象object字段的数组不能像我们所期望的那样工作。 Lucene没有内部对象的概念,所以Elasticsearch将对象层次结构扁平化为一个字段名称和值的简单列表。 例如,以下文件:cu...
阅读(1998) 评论(0)

[ElasticSearch2.x]嵌套对象

考虑到在Elasticsearch中创建,删除和更新的单个文档是原子操作的,因此在相同文档中存储紧密相关的实体是有意义的。 例如,我们可以在一个文档中存储一个订单和其所有的订单线(order lines),或者我们可以通过传递一组评论来将一篇博客文章及其所有评论存储在一起:PUT /my_index/blogpost/1 { "title": "Nest eggs", "body": "...
阅读(406) 评论(0)

[ElasticSearch]分析之Analysis(分析)

分析(analysis)是将文本(如任何电子邮件的正文)转换为添加到倒排索引中进行搜索的tokens或terms的过程。 分析由分析器analyzer执行,分析器可以是内置分析器或者每个索引定制的自定义分析器。1. 索引时分析(Index time analysis)例如在索引时,内置的英文分析器将会转换下面句子:"The QUICK brown foxes jumped over the laz...
阅读(662) 评论(0)

[ElasticSearch]Search之分页

之前的文章[ElasticSearch]搜索我们知道,我们的空搜索匹配到集群中的13个文档。 但是,命中数组中只有10个文档(文章只显示了2条数据,故意省略掉)。 我们如何查看其他文档呢?与SQL使用LIMIT关键字返回一个“页面”的结果数据相同,Elasticsearch接受from和size参数:size 表示应返回的结果数,默认为10from 表示应跳过的初始结果数,默认为0如果想每页显示五...
阅读(1245) 评论(0)

[ElasticSearch]搜索

1. 空搜索测试数据:https://gist.github.com/clintongormley/85792811.1 搜索最基本的搜索API是空搜索(empty search),它没有指定任何的查询条件,只返回集群索引中的所有文档:curl -XGET 'localhost:9200/_search?pretty'Java版本:SearchRequestBuilder searchReques...
阅读(736) 评论(0)

[ElasticSearch2.x]Filter之Cache

过滤器(Filter)的核心实际是采用一个bitset记录与过滤器匹配的文档。当Elasticsearch确定一个bitset可能会在将来被重用时,它将被直接缓存在内存中供以后使用。一旦缓存,这些bitset可以在使用相同查询的任何地方重复使用,而无需再次重新评估整个查询。这些缓存的bitset是非常“机智”的:它们是增量更新的。 在索引新文档时,只需要将那些新文档添加到现有的bitset中,而不...
阅读(354) 评论(0)

[ElasticSearch2.x]Filter之Filter原理

1. FilterBuilders废弃org.elasticsearch.index.queries.FilterBuilders从ElasticSearch2.0开始已被删除,作为查询和过滤器组合的一部分。 这些过滤器现在可以在QueryBuilders中使用具有相同名称的方法。所有可以接受FilterBuilder的方法现在也可以接受QueryBuilder。以前使用方式:FilterBuil...
阅读(734) 评论(0)

[ElasticSearch2.x]Queries vs Filters

1. 查询与过滤Elasticsearch 使用的查询语言(DSL) 拥有一套查询组件(queries),这些组件可以以无限组合的方式进行搭配(mixed and matched)。这套组件可以在以下两种上下文中使用:过滤上下文(filtering context)和查询上下文(query context)。当在过滤上下文(filtering context)中使用 时,该查询被设置成一个“不评分...
阅读(409) 评论(0)

[ElasticSearch2.x]副本分片

1. 副本分片到目前为止,我们只讨论了主分片,但是我们还有另一个工具:副本分片。 副本分片的主要目的是为了故障转移(failover),如深入集群生命周期所述:如果持有主分片的节点死亡,则将其副本提升为主分片的角色。在索引写入时,副本分片做着与主分片相同的工作。新文档首先被索引进主分片然后再同步到其它所有的副本分片。增加副本数并不会增加索引容量。但是,副本分片可以为读取请求提供帮助。 如果通常情况...
阅读(462) 评论(0)

[ElasticSearch]原理之分布式文档存储(Distributed Document Store)

之前的文章中,我们已经知道如何存储数据到索引中以及如何检索它。但是我们掩盖了数据存储到集群中以及从集群中获取数据的具体实现的技术细节(But we glossed over many technical details surrounding how the data is distributed and fetched from the cluster)。 1. 路由文档到分片中(Rout...
阅读(981) 评论(0)

[ElasticSearch]精确值与全文文本

Elasticsearch中的数据可以大致分为两种类型:精确值和全文文本。 1. 精确值(Exact values) 精确值是精确的,正如它的名字一样。比如一个日期或一个用户ID,也可以包含精确的字符串,比如用户姓名或邮件地址。精确值"Foo"不同于和精确值"foo"。同样,精确值2014和精确值2014-09-15也不相同。 2. 全文文本(Full text)...
阅读(1306) 评论(0)

[ElasticSearch2.x]映射(Mapping)

为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成全文本(Full-text)或精确(Exact-value)的字符串值,Elasticsearch需要知道每个字段里面都包含什么数据类型。这些类型和字段的信息存储在映射(mapping)中。 索引中的每个文档都有一个类型(type)。 每个类型拥有自己的映射(mapping)或者模式定义(schema definition...
阅读(3861) 评论(0)

[ElasticSearch]倒排索引

Elasticsearch使用一种叫做倒排索引(inverted index)的结构来做快速的全文搜索。倒排索引由在文档中出现的唯一的单词列表,以及对于每个单词在文档中的位置组成( An inverted index consists of a list of all the unique words that appear in any document, and for each word...
阅读(1595) 评论(0)

[ElasticSearch2.x]分析与分析器(Analyzer)

1. 分析过程 分析(analysis)是这样一个过程: (1)首先,标记化一个文本块为适用于倒排索引单独的词(term) (2)然后标准化这些词为标准形式,提高它们的“可搜索性”或“查全率” 这个工作是分析器(Analyzer)完成的。 2. 分析器组成 分析器(Analyzer) 一般由三部分构成,字符过滤器(Character Filters)、分...
阅读(2190) 评论(0)

[ElasticSearch]Java API之TermQuery

1. 词条查询(Term Query)  词条查询是ElasticSearch的一个简单查询。它仅匹配在给定字段中含有该词条的文档,而且是确切的、未经分析的词条。term 查询 会查找我们设定的准确值。term 查询本身很简单,它接受一个字段名和我们希望查找的值。 下面代码查询将匹配 college 字段中含有"California"一词的文档。记住,词条查询是未经分析的,因此...
阅读(4023) 评论(3)

[ElasticSearch]Java API 之 滚动搜索(Scroll API)

一般搜索请求都是返回一"页"数据,无论数据量多大都一起返回给用户,Scroll API可以允许我们检索大量数据(甚至全部数据)。Scroll API允许我们做一个初始阶段搜索并且持续批量从Elasticsearch里拉取结果直到没有结果剩下。这有点像传统数据库里的cursors(游标)。 Scroll API的创建并不是为了实时的用户响应,而是为了处理大量的数据(Scrolling is...
阅读(6985) 评论(3)

[ElasticSearch]Java API 之 索引文档 (Index API)

Index API 允许我们存储一个JSON格式的文档,使数据可以被搜索。文档通过index、type、id唯一确定。我们可以自己提供一个id,或者也使用Index API 为我们自动生成一个。 这里有几种不同的方式来产生JSON格式的文档(document): (1)手动方式,使用原生的byte[]或者String (2)使用Map方式,会自动转换成与之等价的JSON...
阅读(4631) 评论(0)

[ElasticSearch]那些年踩过的ElasticSerch坑

1. 索引名称错误 1.1 代码 xiaosi@Qunar:~$ curl -XPUT 'localhost:9200/Quanr/employee/1'  '> {>     "first_name" : "John",>     "last_name" :  "Smith",>     "age" :        25,>     "about" :      "I love to...
阅读(3768) 评论(1)
24条 共2页1 2 下一页 尾页
    个人资料
    • 访问:1379387次
    • 积分:21340
    • 等级:
    • 排名:第398名
    • 原创:623篇
    • 转载:133篇
    • 译文:60篇
    • 评论:182条
    博客专栏
    文章分类
    最新评论