Elasticsearch-18-精确匹配与全文检索 发表于 2018-11-21 | 分类于 Elasticsearch 精确匹配(exact value)比如我们在之前的例子,通过精确匹配搜索 2017-01-01的时候, field中必须包含2017-01-01 才能搜索出来,如果只搜索个01,这样是搜不出来的 全文检索 (full text)不单纯的只是匹配一个完整的值,而是可以对值进行分词后进行匹配,还可以通过 ... 阅读全文 »
Elasticsearch-17-初识mapping 发表于 2018-11-21 | 分类于 Elasticsearch 首先,我们先插入几条数据,让ES为我们自动建立一个索引1234567891011121314151617181920212223PUT /website/article/1{ "post_date": "2017-01-01", "ti ... 阅读全文 »
Elasticsearch-16-_search搜索详解 发表于 2018-11-21 | 分类于 Elasticsearch multi-index和multi-type搜索模式就是一次性搜索多个index和type下的数据 示例 搜索所有index,所有type下的所有数据 1GET /_search 指定一个index,搜索其下所有的type的数据 1GET /index/_search 查询某个index下指 ... 阅读全文 »
Elasticsearch-15-写一致性原理及quorum机制 发表于 2018-11-20 | 分类于 Elasticsearch 概念我们在发送任何一个增删改操作的时候,都可以带上一个consistency参数,指明我们想要的写一致性是什么,比如:1PUT /index/type/id?consistency= consistency的值可以有三个: one:要求这个写操作,只要有一个primary shard是acti ... 阅读全文 »
Elasticsearch-14-document增删改查原理 发表于 2018-11-20 | 分类于 Elasticsearch 熟悉了es路由规则以后,再来看一下document的增删改查的原理. 场景现在有3个es节点在一个集群内, 有3个primary shard 对应的replica数量是1 就是说有3个 primary shard 和3个replica,总共6个shard, 现在有个客户端要创建一个documen ... 阅读全文 »
Elasticsearch-13-document路由原理 发表于 2018-11-20 | 分类于 Elasticsearch 概念我们知道,一个index的数据会被分为多片,每片都放在一个shard中.所以,一个document只能存在于一个shard中.当客户端创建document的时候,es此时就要决定这个document是要放在哪一个shard中. 这个过程就被是document routing 数据路由 路由算 ... 阅读全文 »
Elasticsearch-12-批量增删改查操作 发表于 2018-11-19 | 分类于 Elasticsearch 批量查询批量查询的优点: 如果用 GET /index_name/type_name/id 这样的查询去查询100条数据的话,就要发送100次网络请求,开销比较大,如果是批量查询的话,查询100条数据只需要用1次网络请求,网络请求的性能开销会很少. _mget批量查询比如我们要查询test_inde ... 阅读全文 »
Elasticsearch-11-基于groovy脚本进行partial update 发表于 2018-11-19 | 分类于 Elasticsearch 基于groovy脚本进行partial update首先添加一条数据到es中12345PUT test_index/test_type/2{ "num":0, "tags":[]} 内置脚本1234POST test_index/tes ... 阅读全文 »
Elasticsearch-10-并发控制方案 发表于 2018-11-17 | 分类于 Elasticsearch 并发场景假设现在是矮子电商场景下,用户需要去购买商品,程序的工作流程是: 读取商品信息,比如商品名称价格等. 用户下单去购买商品 更新商品库存es的工作流程: 先查询document数据,商品信息等,显示到页面,同时在内存中缓存该document的数据 当网页发生购买以后,直接基于内存中的 ... 阅读全文 »
Elasticsearch-9-document核心元数据解析 发表于 2018-11-16 | 分类于 Elasticsearch 本文主要写document中的_index,_type,_id,_source这几个元数据先随便添加一个document1234PUT /test_index/test_type/1{ "test_content":"test content" ... 阅读全文 »