随笔分类 -  【G】ElasticSearch

记录在搜索领域的所学知识
摘要:1、集群部署 2、结点的三个角色 主结点:master节点主要用于集群的管理及索引 比如新增结点、分片分配、索引的新增和删除等。 数据结点:data 节点上保存了数据分片,它负责索引和搜索操作。 客户端结点:client 节点仅作为请求客户端存在,client的作用也作为负载均衡器,client 节 阅读全文
posted @ 2022-07-03 10:57 |旧市拾荒| 阅读(112) 评论(0) 推荐(0)
摘要:在ElasticSearch7.3学习(三十二) logstash三大插件(input、filter、output)及其综合示例中学到logstash使用filter插件进行数据清洗,grok是一个十分强大的logstash filter插件,他可以通过正则解析任意文本,将非结构化日志数据弄成结构化 阅读全文
posted @ 2022-07-03 10:55 |旧市拾荒| 阅读(261) 评论(0) 推荐(0)
摘要:1、 Logstash输入插件 1.1 input介绍 logstash支持很多数据源,比如说file,http,jdbc,s3等等 图片上面只是一少部分。详情见网址:https://www.elastic.co/guide/en/logstash/current/input-plugins.htm 阅读全文
posted @ 2022-06-25 22:41 |旧市拾荒| 阅读(1463) 评论(0) 推荐(1)
摘要:一、Logstash基本介绍 Logstash 是一个功能强大的工具,可与各种部署集成。 它提供了大量插件,可帮助你解析,丰富,转换和缓冲来自各种来源的数据(文件、数据库......)。logstash简单来说就是一个数据抽取工具,将数据从一个地方转移到另一个地方。 Logstash 是 Elast 阅读全文
posted @ 2022-06-09 22:25 |旧市拾荒| 阅读(293) 评论(0) 推荐(0)
摘要:一、ES7 sql新特性 1.1 数据准备 创建索引及映射 建立价格、颜色、品牌、售卖日期 四个字段 PUT /tvs PUT /tvs/_mapping { "properties": { "price": { "type": "long" }, "color": { "type": "keywo 阅读全文
posted @ 2022-06-06 22:39 |旧市拾荒| 阅读(1245) 评论(0) 推荐(0)
摘要:一、数据准备 创建索引及映射 建立价格、颜色、品牌、售卖日期字段 PUT /tvs PUT /tvs/_mapping { "properties": { "price": { "type": "long" }, "color": { "type": "keyword" }, "brand": { 阅读全文
posted @ 2022-05-28 10:22 |旧市拾荒| 阅读(549) 评论(0) 推荐(0)
摘要:一、电视案例 1.1 数据准备 创建索引及映射 建立价格、颜色、品牌、售卖日期 字段 PUT /tvs PUT /tvs/_mapping { "properties": { "price": { "type": "long" }, "color": { "type": "keyword" }, " 阅读全文
posted @ 2022-05-25 20:03 |旧市拾荒| 阅读(614) 评论(2) 推荐(3)
摘要:一、两个核心概念:bucket和metric 1.1 bucket 有如下数据 city name 北京 张三 北京 李四 天津 王五 天津 赵六 天津 王麻子 划分出来两个bucket,一个是北京bucket,一个是天津bucket 北京bucket:包含了2个人,张三,李四 上海bucket:包 阅读全文
posted @ 2022-05-22 19:46 |旧市拾荒| 阅读(449) 评论(0) 推荐(1)
摘要:1、preference 首先引入一个bouncing results问题,两个document排序,field值相同;不同的shard上,可能排序不同;每次请求轮询打到不同的replica shard上;每次页面上看到的搜索结果的排序都不一样。这就是bouncing result,也就是跳跃的结果 阅读全文
posted @ 2022-05-18 21:44 |旧市拾荒| 阅读(687) 评论(0) 推荐(1)
摘要:1、Doc value 搜索的时候,要依靠倒排索引; 排序的时候,需要依靠正排索引,看到每个document的每个field,然后进行排序。 所谓的正排索引,其实就是doc values。 在建立索引的时候,一方面会建立倒排索引,以供搜索用;一方面会建立正排索引,也就是doc values,以供排序 阅读全文
posted @ 2022-05-15 17:11 |旧市拾荒| 阅读(297) 评论(0) 推荐(1)
摘要:1、算法介绍 relevance score(相关性分数) 算法,简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度。Elasticsearch使用的是 term frequency/inverse document frequency算法,简称为TF/IDF算法。TF词频( 阅读全文
posted @ 2022-05-12 22:55 |旧市拾荒| 阅读(256) 评论(0) 推荐(0)
摘要:1、数据准备 首先创建book索引 PUT /book/ { "settings": { "number_of_shards": 1, "number_of_replicas": 0 }, "mappings": { "properties": { "name": { "type": "text", 阅读全文
posted @ 2022-05-10 23:04 |旧市拾荒| 阅读(153) 评论(0) 推荐(0)
摘要:1、Text字段排序 场景:数据库中按照某个字段排序,sql只需写order by 字段名即可,如果es对一个text field进行排序,es中无法排序。因为文档入倒排索引表时,分词存入,es无法知道此字段的真实值。这样的结果往往不准确,因为分词后是多个单词,再排序就不是我们想要的结果了。 通常有 阅读全文
posted @ 2022-05-08 23:09 |旧市拾荒| 阅读(798) 评论(0) 推荐(0)
摘要:1、数据准备 首先创建book索引 PUT /book/ { "settings": { "number_of_shards": 1, "number_of_replicas": 0 }, "mappings": { "properties": { "name": { "type": "text", 阅读全文
posted @ 2022-04-19 23:21 |旧市拾荒| 阅读(485) 评论(0) 推荐(0)
摘要:1、Query DSL入门 1.1 DSL DSL:Domain Specified Language,特定领域的语言。es特有的搜索语言,可在请求体中携带搜索条件,功能强大。 查询全部 GET /book/_search { "query": { "match_all": {} } } 排序 GE 阅读全文
posted @ 2022-04-18 21:45 |旧市拾荒| 阅读(223) 评论(0) 推荐(1)
摘要:1、什么是deep paging 根据相关度评分倒排序,所以分页过深,协调节点会将大量数据聚合分析。 2、deep paging 性能问题 1消耗网络带宽,因为所搜过深的话,各 shard 要把数据传递给 coordinate node,这个过程是有大量数据传递的,消耗网络。 2消耗内存,各 sha 阅读全文
posted @ 2022-04-17 22:50 |旧市拾荒| 阅读(111) 评论(0) 推荐(0)
摘要:1、multi-index 多索引搜索 多索引搜索就是一次性搜索多个index下的数据 /_search:所有索引下的所有数据都搜索出来 /index1/_search:指定一个index,搜索其下所有的数据 /index1,index2/_search:同时搜索两个index下的数据 /index 阅读全文
posted @ 2022-04-17 17:09 |旧市拾荒| 阅读(492) 评论(0) 推荐(0)
摘要:1、搜索结果字段解析 首先插入一条测试数据 PUT /my_index/_doc/1 { "title": "2019-09-10" } 然后无条件搜索所有 GET my_index/_search 得到的结果 { "took" : 0, "timed_out" : false, "_shards" 阅读全文
posted @ 2022-04-06 21:51 |旧市拾荒| 阅读(208) 评论(0) 推荐(0)
摘要:1、写在前面 注意:导入的包区别,不同的包创建索引的方式不同。博主亲身实践,具体体现在createIndexRequest.mapping()里面。读者可自行试验。 import org.elasticsearch.client.indices.CreateIndexRequest; import 阅读全文
posted @ 2022-04-02 22:44 |旧市拾荒| 阅读(3789) 评论(0) 推荐(0)
摘要:1、 中文分词器 1.1 默认分词器 先来看看ElasticSearch中默认的standard 分词器,对英文比较友好,但是对于中文来说就是按照字符拆分,不是那么友好。 GET /_analyze { "analyzer": "standard", "text": "中华人民共和国" } 我们想要 阅读全文
posted @ 2022-03-28 21:27 |旧市拾荒| 阅读(5773) 评论(0) 推荐(1)