盖娅计划

加强彼此联系,努力实现盖娅星系!


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

食谱:清蒸鲈鱼

发表于 2022-10-07 | 分类于 齐家

材料

食材:鲈鱼、小葱、姜

调料:蒸鱼豉油

阅读全文 »

食谱:大盘鸡

发表于 2022-10-07 | 分类于 齐家

材料

食材:鸡腿肉(400g)、土豆(1个 300g)、洋葱(半个)、青尖椒(1个)

调料:太太乐大盘鸡复合调味料

阅读全文 »

Elasticsearch字符串包含查询优化

发表于 2022-10-07 | 分类于 elasticsearch

摘要

本文提出一种新的分词方式,配合前缀搜索可实现es中字符串包含查询,并与三种常用的包含查询实现进行对比,得出新方案在索引数据不过度膨胀的情况下,搜索耗时比现有方案减少80%。

阅读全文 »

【论文翻译】 Goods:Organizing Google’s Datasets

发表于 2022-09-19 | 分类于 论文

摘要

google针对公司多源、异构、海量数据集设计了“Goods”系统。Goods收集了每个数据集重要的元信息以及血缘关系,并向公司内工程师提供:查找数据集、监控数据集以及对数据集加注释。​论文主要讨论了抓取和推断数十亿数据集的元数据、保持大规模元数据目录的一致性以及向用户公开元数据所必须克服的技术挑战。

阅读全文 »

购房知识(一)

发表于 2022-07-10 | 分类于 齐家

概述

古语有云:‘修身,齐家,治国,平天下’,过去的三十多年主要在修身但成效甚微,遂决定开辟第二战场——齐家。说到齐家就不能不提到置业买房,为了避免在整个过程中出现认知偏差,所以前期的学习调研是十分必要的。

本系列文章首先会学习购房相关知识,包括相关概念,基本流程,地方政策等。然后分析自己对房产的核心诉求,影响核心诉求的可量化指标。最后就是通过数据收集,实地探访确定购买区域,持续关注最后出手。本文为该系列第一篇,主要介绍购房相关概念以及房价的主要构成。

阅读全文 »

elasticsearch 搜索排序

发表于 2022-02-12 | 分类于 elasticsearch

概述

搜索结果排序是搜索引擎必备的功能,也是能直接影响用户搜索体验的重要功能。elasticsearch作为一个优秀的分布式搜索引擎,不仅可以针对属性做字典序或数值排序,还可以根据 实用评分函数(practical scoring function)计算相似度并排序。本文主要分享elasticsearch提供的搜索排序能力,具体将从以下四点进行介绍:

  1. 首先解释关键概念——搜索和过滤,区分它们的差异。
  2. 介绍Es排序API,如何通过查询请求中sort字段控制es排序。
  3. 介绍es在计算相似度评分以及如何控制相关性。
  4. 总结全文并介绍一些本人在搜索排序中的心得体会。
阅读全文 »

工程师精神

发表于 2022-02-06 | 分类于 文心雕龙

概述

以往我经常以工程师自居,最近突然在思考:什么样的人算是工程师?他们是如何做事的?核心精神又应该是什么样的?带着这些疑问我查了查资料,看些别人的视频,现在总结出一些观点和大家分享。

阅读全文 »

elasticsearch-Search template 模板搜索

发表于 2021-05-31 | 更新于 2021-06-01 | 分类于 elasticsearch

概述

Elasticsearch 允许使用模板语言 mustache 来预设搜索逻辑,在实际搜索时,通过参数中的键值,对来替换模板中的占位符,最终完成搜索。该方式将搜索逻辑封闭在 Elasticsearch 中,可以使下游服务,在不知道具体搜索逻辑的情况下完成数据检索。我们以 Kibana 自带的航班数据kibana_sample_data_flights为基础,以按航班号搜索为例,简单介绍搜索模板的使用。

第一步,创建 ID 为 testSearchTemplate 的搜索模板,语句如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
POST _scripts/testSearchTemplate
{
"script": {
"lang": "mustache", #使用 mustache 模板语言
"source": { # 脚本内容
"query": { # 搜索逻辑
"term": {
"FlightNum": {
"value": "{{FlightNum}}" # 占位符 FlightNum
}
}
}
}
}
}

第二步,传参搜索数据,语句如下

1
2
3
4
5
6
7
GET kibana_sample_data_flights/_search/template
{
"id": "testSearchTemplate", # 使用的模板ID
"params": {
"FlightNum": "9HY9SWR" # 占位符替换的值
}
}

以上两步就是使用模板搜索数据,该逻辑等同于下面这个搜索

1
2
3
4
5
6
7
8
9
10
GET kibana_sample_data_flights/_search
{
"query": {
"term": {
"FlightNum": {
"value": "9HY9SWR"
}
}
}
}
阅读全文 »

elasticsearch-Index template 索引模板

发表于 2021-05-31 | 更新于 2021-06-01 | 分类于 elasticsearch

简介

Elasticsearch 本着让用户方便快捷的使用搜索功能的原则,对数据定义(索引定义)做了高度抽象,尽可能得避免了重复性定义工作,使之更加灵活。

Elasticsearch 在这方面做的工作主要体现是索引模板(Index template)和动态映射(Dynamic Mapping)两个功能。索引模板的主要功能,是允许用户在创建索引(index)时,引用已保存的模板来减少配置项。操作的一般过程是先创建索引模板,然后再手动创建索引或保存文档(Document)。而自动创建索引时,索引模板会作为配置的基础作用。对于 X-Pack 的数据流(Data Stream)功能,索引模板用于自动创建后备索引(Backing Indices)。该功能的意义是提供了一种配置复用机制,减少了大量重复作劳动。

目前 Elasticsearch 的索引模板功能以 7.8 版本为界,分为新老两套实现,新老两个版本的主要区别是模板之间复用如何实现。

老版本:

使用优先级(order)关键字实现,当创建索引匹配到多个索引模板时,高优先级会继承并铺盖低优先级的模板配置,最终多个模板共同起作用。

新版本:

删除了 order 关键字,引入了组件模板 Component template 的概念,是第一段可以复用的配置块。在创建普通模板时可以声明引用多个组件模板,当创建索引匹配到多个新版索引模板时,取用最高权重的那个。

下面将以生命周期(创建、查看、使用、删除)为切入点,分别介绍如何使用 Elasticsearch 新老两个版本的索引模板。

阅读全文 »

elasticsearch-dynamic mapping 动态映射

发表于 2021-05-31 | 更新于 2021-06-01 | 分类于 elasticsearch

概述

通常来说,搜索数据一般需要经过 3 个步骤:

  • 定义数据(建表建索引)

  • 录入数据

  • 搜索数据

在现实使用中,定义数据往往是比较繁琐,并且有大量的重复操作。

Elasticsearch 本着让用户使用更方便快捷的原则,针对这个问题做了很多工作,使定义数据的方式更加抽象灵活,多个雷同的字段可使用 1 个配置完成。

比较有代表性的2个功能分别是:

  • 索引模板(index template):可以根据规则自动创建索引。

  • 动态映射(dynamic mapping):自动将新字段添加到映射中。

本小节我们着重介绍动态映射(dynamic mapping)

根据官方的定义动态映射可以自动检测和添加新字段(field)到映射(mapping)中。动态映射可以通过基础属性自动发现(Dynamic field mappings)以及复杂属性动态生成(Dynamic templates)2个方式实现此功能。

阅读全文 »
12…6
Phoenix Luo

Phoenix Luo

骆潇龙开脑洞的地方

56 日志
13 分类
42 标签
© 2022 Phoenix Luo 京ICP备19007490号
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Pisces v6.7.0
本站总访问量 次 | 有人看过我的博客啦