随笔分类 -  【G】ElasticSearch

记录在搜索领域的所学知识
摘要:1、实时重建索引 在实际的生产环境中,一个field的设置是不能被修改的,如果要修改一个Field,那么应该重新按照新的mapping,建立一个index,然后将数据批量查询出来,重新用bulk api写入index中。 批量查询的时候,建议采用scroll api,并且采用多线程并发的方式来rei 阅读全文
posted @ 2022-03-26 23:01 |旧市拾荒| 阅读(476) 评论(0) 推荐(2)
摘要:1、dynamic mapping ElasticSearch中有一个非常重要的特性——动态映射,即索引文档前不需要创建索引、类型等信息,在索引的同时会自动完成索引、类型、映射的创建。 当ES在文档中碰到一个以前没见过的字段时,它会利用动态映射(dynamic mapping)来决定该字段的类型,并 阅读全文
posted @ 2022-03-24 22:46 |旧市拾荒| 阅读(1427) 评论(0) 推荐(0)
摘要:1、type是什么 type,是一个index中用来区分类似的数据的。类似的数据,但是可能有不同的fields,而且有不同的属性来控制索引建立、分词器、field的value。 在底层的lucene中建立索引的时候,全部是opaque bytes类型,不区分类型的。 lucene是没有type的概念 阅读全文
posted @ 2022-03-24 20:44 |旧市拾荒| 阅读(1256) 评论(0) 推荐(0)
摘要:1、默认的分词器 关于分词器,前面的博客已经有介绍了,链接:ElasticSearch7.3 学习之倒排索引揭秘及初识分词器(Analyzer)。这里就只介绍默认的分词器standard analyzer 2、 修改分词器的设置 首先自定义一个分词器es_std。启用english停用词token 阅读全文
posted @ 2022-03-22 22:31 |旧市拾荒| 阅读(559) 评论(0) 推荐(0)
摘要:1、 为什么需要手动创建索引 直接put数据 PUT index/_doc/1,es会自动生成索引,并建立动态映射dynamic mapping。这样的话很大可能与实际的需求不服,在实际的应用上,我们需要自己手动建立索引和映射,这也是为了更好地管理索引。就像数据库的建表语句一样。 2、 创建索引 创 阅读全文
posted @ 2022-03-21 20:52 |旧市拾荒| 阅读(161) 评论(0) 推荐(1)
摘要:1、mapping的核心数据类型以及dynamic mapping 1.1 核心的数据类型 string :text and keyword,byte,short,integer,long,float,double,boolean,date 详见:https://www.elastic.co/gui 阅读全文
posted @ 2022-03-19 23:14 |旧市拾荒| 阅读(525) 评论(0) 推荐(0)
摘要:一、倒排索引 1. 构建倒排索引 例如说有下面两个句子doc1,doc2 doc1:I really liked my small dogs, and I think my mom also liked them. doc2:He never liked any dogs, so I hope th 阅读全文
posted @ 2022-03-18 23:19 |旧市拾荒| 阅读(444) 评论(0) 推荐(0)
摘要:1.mapping映射 概念:自动或手动为index中的_doc建立的一种数据结构和相关配置,简称为mapping映射。插入几条数据,让es自动为我们建立一个索引 PUT /website/_doc/1 { "post_date": "2019-01-01", "title": "my first 阅读全文
posted @ 2022-03-14 22:06 |旧市拾荒| 阅读(246) 评论(0) 推荐(0)
摘要:1、数据路由 1.1 文档存储怎么路由到相应分片? 一个文档,最终会落在主分片的一个分片上,到底应该在哪一个分片?这就是数据路由。 1.2 路由算法 shard = hash(routing) % number_of_primary_shards 简单来说就是哈希值对主分片数取模。 举例: 对一个文 阅读全文
posted @ 2022-03-13 23:13 |旧市拾荒| 阅读(644) 评论(0) 推荐(1)
摘要:1 ElasticSearch分布式基础 1.1 ES分布式机制 分布式机制:Elasticsearch是一套分布式的系统,分布式是为了应对大数据量。它的特性就是对复杂的分布式机制隐藏掉。 分片机制:数据存储到哪个分片,副本数据写入另外分片。 集群发现机制:新启动es实例,会自动加入集群。 shar 阅读全文
posted @ 2022-03-13 20:27 |旧市拾荒| 阅读(422) 评论(0) 推荐(0)
摘要:1、前置 java api 文档 https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.3/java-rest-overview.html。low : 偏向底层。high:高级封装。 导入相关maven依赖 <!--es客户 阅读全文
posted @ 2022-03-12 21:57 |旧市拾荒| 阅读(1202) 评论(0) 推荐(0)
摘要:Bulk 操作是将文档的增删改查一些列操作,通过一次请求全都做完。目的是减少网络传输次数。 语法: POST /_bulk {"action": {"metadata"}} {"data"} 如下操作,创建14,创建5,删除5,更新14 POST /_bulk { "create": { "_ind 阅读全文
posted @ 2022-03-08 21:57 |旧市拾荒| 阅读(284) 评论(0) 推荐(0)
摘要:1、悲观锁与乐观锁机制 为控制并发问题,我们通常采用锁机制。分为悲观锁和乐观锁两种机制。 悲观锁:很悲观,所有情况都上锁。此时只有一个线程可以操作数据。具体例子为数据库中的行级锁、表级锁、读锁、写锁等。 特点:优点是方便,直接加锁,对程序透明。缺点是效率低,并发能力非常弱。 乐观锁:很乐观,对数据本 阅读全文
posted @ 2022-03-07 21:25 |旧市拾荒| 阅读(547) 评论(2) 推荐(0)
摘要:1 、新建图书索引 首先建立图书索引 book 语法:put /index PUT /book 结果 2、新增图书 :新增文档 语法:PUT /index/type/id PUT /book/_doc/1 { "name": "Bootstrap开发", "description": "Bootst 阅读全文
posted @ 2022-03-05 21:54 |旧市拾荒| 阅读(317) 评论(0) 推荐(0)
摘要:在做ElasticSearch查询操作的时候,发现Hits[].length总是比totalHits.value少1。代码如下: SearchRequest request = new SearchRequest("indexName"); SearchSourceBuilder builder = 阅读全文
posted @ 2021-11-18 21:53 |旧市拾荒| 阅读(1161) 评论(0) 推荐(0)
摘要:由于项目的需要,使用到了全文检索技术,这里将前段时间所做的工作进行一个实践总结,方便以后查阅。在实际的工作中,需要灵活的使用lucene里面的查询技术,以达到满足业务要求与搜索性能提升的目的。 一、全文检索介绍 1.1为什么需要全文检索 数据可以分为结构化数据和非结构化数据,对数据查询时,结构化数据 阅读全文
posted @ 2021-11-07 17:53 |旧市拾荒| 阅读(417) 评论(0) 推荐(1)