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