首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏pythonista的日常

    es搜索优化&mysql查询优化

    这周优化了我们沙抖官网搜索的功能,这个搜索目前是根据视频标题进行匹配,之前是对用户输入的关键词进行了分词查找,比如用户输入【机器人】,这样的话,只要视频标题中有关键词的任意一个字都会被搜到,比如含有【人 】字的标题会展示出来,并可能排的很靠前,所以我就对当前的搜索进行了优化,现在搜索是优先进行相邻短语查询 match_phrase,如果相邻短语查询结果小于2个就进行普通的分词查询,这个相邻短语查询是要求在请求字符串中的所有查询项必须都在文档中存在 "fields": { "video_title": { } } } } 这周内我还对我们的数据表查询进行了优化 加了普通索引和联合索引,现在我们一个视频数据表的数据量是几百兆大小,根据视频行业进行查询时,mysql 响应速度在 600ms 左右,我对行业字段添加了普通索引,查询响应在 30 ms 左右,前后对比优化结果还是很明显的

    2.1K20发布于 2020-06-16
  • 来自专栏性能优化最佳实践

    【腾讯云ES】基于NGram分词ES搜索性能优化实践

    关于严格匹配我们很容易就能想到模糊查询,es本身也是能支持模糊查询的:方案选择方案一:模糊查询 wildcard && fuzzy 模糊查询的功能有点类似 mysql 中的 like,可以使用正则表达式的通配符来达到模糊搜索的效果 ,但是当输入字符串很长或者搜索数据集很大时,搜索性能很低,原因是ES使用的是基于DFA的文本匹配算法,时间复杂度(M+N),当索引里面的数据量为K时,时间复杂度为(M+N)× K,数据量越大,输入文本越长 PUT test-ngram-v1{ "settings": { "index.max_ngram_diff": 10, //核心参数:ngram最大步长,可以手动配置,默认为1。 "type" : "ngram", "max_gram" : "10" // 指定最大步长 ,按需配置,不能超过"index.max_ngram_diff"。 Ngram搜索性能要远远高于 wildcard,但会额外消耗10%左右磁盘(并不明显),可以配合一些数据压缩策略使用。3.

    4K40编辑于 2022-12-05
  • 来自专栏ES搜索

    ES三周年】ES查询—海量数据搜索深度分页优化

    图片 背景 最近在实际项目中查询条件上越来越复杂,mysql的筛选已无法支撑,准备将所有搜索筛选改为es查询。 例如ES 共有 4 个shard,并且每个shard没有副本。假如分页的大小为 10,想取第11 页的内容。则对应的 from = 100,size = 10。 图片 图片 图片 具体使用方法: 第一次查询时,会生成一个 scrollId ,并将所有符合搜索条件的搜索结果缓存起来。 ES 的查询过程为: 每个shard根据sort游标,拿出满足条件的10个样本,返回给coordinator. 每个shard都执行上面的操作。 引用文章:Elasticsearch Scroll API vs Search After with PIT 相比scroll,内存也得到了优化es 的查询简化流程: 第一步.用户发送查询dsl

    5.1K229编辑于 2023-04-29
  • 来自专栏洁癖是一只狗

    ES搜索相似度

    今天再来一道面试真题,es搜索的相似度算法如何计算 首先,我们要从这几方面回答 TF(term frequency)检索词频率 IDF(inversed document frequency)反向文档频率 中出现的次数,比如上面出现了3次,一个term在所有doc 中出现的次数越多,分数就越低,比如我们的and 或the常用词,就会频繁出现,对分数的贡献就很少,所以分数就比较小 字段长度准则 hello搜索的 ---->[2,5] 每一个doc都会计算出term计算出一个分数,hello 一个分数,world一个分数,都会计算出一个分数组,所有的分数组形成一个文档向量 查询向量 比如hello world,es

    1.5K10编辑于 2022-06-24
  • 来自专栏第二蒙古上单

    ES搜索内容置顶

    有些时候,我们可能需要人工干预ES搜索结果,让指定的内容置顶,ES提供了pinned语法来实现该功能。 "organic": { "match" : { "title": "制作云" } } } }, "size" : 10 } ], "minimum_should_match" : 1 } } } }, "size" : 10 , "from" : 0 } 看文档说似乎是从ES 7.4版本开始支持这个语法。

    2.5K30发布于 2021-05-18
  • 来自专栏前端卡卡西

    es3-es10整理

    ECMAScript es3(ECMAScript 1999) 1999年,ECMAScript第三个版本 es4(ECMAScript 2007) ECMAScript第四个版本,废弃 es5(ECMAScript 在ES2015中,非对象的参数将被强制转换为一个对象。 age: 4 }) //dog,4 pet({age:5}) //cat,5 // 双重默认值 function son({name='tom',age=10 }={}){ console.log(name,age); } son() //tom,10 son({name:'lili'}) //lili,10 son({age (ECMAScript 2018) 2018年,ECMAScript第九个版本 es10(ECMAScript 2019) 2019年,ECMAScript第十个版本

    1.8K20编辑于 2022-02-25
  • 来自专栏全栈程序员必看

    02.全文搜索ES

    全文搜索 1.介绍 elasticsearch 6 (和elasticsearch 5 的区别在于,root用户权限、一个库只能建立一个表) elasticsearch 6一个索引只能建立一张表 1.1 文本搜索引擎: 优点:搜索快; 缺点:占用空间。 solr需要依赖zk1. 1.2 elasticSearch(搜索引擎)的算法 倒排索引(在内容上建立索引,用内容匹配索引); btree mysql数据库的索引方式。 -R elasticsearch-6.3.1 切换 到es用户上。 的文档(分词处理并建立了索引)之间的相关度的高低 4.ES集群 4.1 节点、分片、索引 ==节点:==一个节点就是一个es的服务器,es集群中,主节点负责集群的管理和任务的分发,一般不负责文档的增删改查

    1.1K20编辑于 2022-06-30
  • 来自专栏JAVA同学会

    ES学习笔记(九)搜索

    搜索ES最最核心的内容,没有之一。前面章节的内容,索引、动态映射、分词器等都是铺垫,最重要的就是最后点击搜索这一下。下面我们就看看点击搜索这一下的背后,都做了哪些事情。 分数(score) ES搜索结果是按照相关分数的高低进行排序的,咦?! 怎么没说搜索先说搜索结果的排序了?咱们这里先把这个概念提出来,因为在搜索的过程中,会计算这个分数。 在ES搜索当中,分为两种,一种计算分数,而另外一种是不计算分数的。 频繁使用的过滤还会被ES加入到缓存,以提升ES的性能。下面我们看一个查询和过滤的例子,这个也是ES官网中的例子。 : { "tag" : "tech" } }, "must_not" : { "range" : { "age" : { "gte" : 10

    85130发布于 2020-05-25
  • 来自专栏JAVA同学会

    ES学习笔记(九)搜索

    搜索ES最最核心的内容,没有之一。前面章节的内容,索引、动态映射、分词器等都是铺垫,最重要的就是最后点击搜索这一下。下面我们就看看点击搜索这一下的背后,都做了哪些事情。 分数(score) ES搜索结果是按照相关分数的高低进行排序的,咦?! 怎么没说搜索先说搜索结果的排序了?咱们这里先把这个概念提出来,因为在搜索的过程中,会计算这个分数。 在ES搜索当中,分为两种,一种计算分数,而另外一种是不计算分数的。 频繁使用的过滤还会被ES加入到缓存,以提升ES的性能。下面我们看一个查询和过滤的例子,这个也是ES官网中的例子。 : { "tag" : "tech" } }, "must_not" : { "range" : { "age" : { "gte" : 10

    66930发布于 2020-05-21
  • 来自专栏程序员泥瓦匠

    搜索 ES 数据写入原理

    写个小文巩固下,本文主要讲 ES -> Lucene 的底层结构,然后详细描述新数据写入 ES 和 Lucene 的流程和原理。 无论在开源还是专有领域,Lucene 可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库,并通过简单的 RESTful API 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单。 Elasticsearch 不仅仅是 Lucene 和全文搜索,我们还能这样去描述它: 分布式的实时文件存储,每个字段都被索引并可被搜索 分布式的实时分析搜索引擎 可以扩展到上百台服务器,处理 PB 级结构化或非结构化数据 ES 基于底层这些包,然后进行了扩展,提供了更多的更丰富的查询语句,并且通过 RESTful API 可以更方便地与底层交互。类似 ES 还有 Solr 也是基于 Lucene 实现的。 三、新文档写入流程 3.1 数据模型 如图 一个 ES Index (索引,比如商品搜索索引、订单搜索索引)集群下,有多个 Node (节点)组成。每个节点就是 ES 的实例。

    82230编辑于 2021-12-17
  • 来自专栏亦枫的大佬之路

    JavaScript中的ES7ES8ES9ES10

    2.Rest/Spread 属性 3.正则表达式命名捕获组 编号的捕获组 ES10 1. 2.搜索的开始索引。 当第二个参数被传入时,该方法会从索引处开始往后搜索(默认索引值为0)。若搜索值在数组中存在则返回true,否则返回false。 /^\p{White_Space}+$/u.test('\t \n\r') // true /^\p{Script=Greek}+$/u.test('μετά') // true ES10 ES10还在草案 12.标准 globalThis 对象 全局 this 在ES10之前尚未标准化。

    4.7K40发布于 2020-03-19
  • 来自专栏QQ大数据团队的专栏

    源码级揭秘腾讯云 ES 向量搜索优化之道

    本文共计6751字 预计阅读时长21分钟 导语 在上一篇文章《ES8 向量功能窥探系列(一):混合搜索功能初探与增强》中,我们初步探讨了 Elasticsearch 8.x 的混合搜索功能,包括kNN 无需任何配置,即可以直接使用到降低 70% 存储的优化特性。 4. 量化 量化是向量搜索领域,乃至 AI 模型领域的常用技术,它通过一定算法对原始向量进行压缩,得到字节数占用较小的,量化后的向量表示。 虽然该功能相对实验性,但它进一步降低了 ES 向量搜索的存储门槛,拓展了不同读写流程。后续我们仅需要对”复水“算法进行优化,即可不断弱化这一影响,从而使其得到更广泛的使用。 6. 70% 和 90% 存储的优化。 也希望更多有向量/混合搜索需求的用户,可以尝试和使用腾讯云 ES 向量搜索增强版,如果您也有独到的需求或想法,可以联系到腾讯云 ES 团队,我们将竭尽全力与您共同探索与解决。

    82010编辑于 2025-02-24
  • 来自专栏YG小书屋

    ES 查询优化(二)

    "search"] } { "tags" : ["search", "open_source"] } 两个文档,{ "term" : { "tags" : "search" } }都能匹配,但想只搜索包含一个的值 { "text": "hop" }}, { "term": { "text": "leap" }} ] } } } 3、查询时提高索引的相关性 比如说,我们es GET /docs_2017_12_*/_search { "indices_boost": { "docs_2017_12_10": 3, "docs_2017_12_09": 2 }, "query": { "term": { "text": "error" } } } 4、更改score计算方法 ES5.0之前默认用的是tf-idf

    2.8K40发布于 2018-05-23
  • 来自专栏YG小书屋

    ES 查询优化(一)

    1、能用term就不用match_phrase The Lucene nightly benchmarks show that a simple term query is about 10 times term查询比match_phrase性能要快10倍,比带slop的match_phrase快20倍。 "name": "dev" } }, "sort":[ "_doc" ] } 4、随机取n条(n>=10000)数据 1)可以利用ES }, "random_score": { } } } } 2)可以利用ES 假设price都小于100,插入的字段为mark,mark的值为10-50, 50-70, 70-100。

    5.2K60发布于 2018-05-23
  • 来自专栏OSChina

    ES - 使用ES客户端来操作搜索引新

    </artifactId> <version>2.9.9</version> </dependency> </dependencies> 2 编写方法 package com.shi.es org.elasticsearch.transport.client.PreBuiltTransportClient; import com.fasterxml.jackson.databind.ObjectMapper; /** * ES .get(); System.out.println("文档添加成功..."); //关闭客户端 client.close(); } } package com.shi.es QueryBuilders.queryStringQuery("无人驾驶校车").defaultField("content"); search(client,builder);//执行查询 } } 3 测试 package com.shi.es

    1.7K10发布于 2019-08-26
  • 来自专栏小小程序员——DATA

    ES三周年】分布式搜索索引elasticsearch JavaAPI编写ES搜索

    “如家”,价格不高于400,在坐标31.21,121.5周围10km范围内的酒店。 图片2.2.分页elasticsearch 默认情况下只返回top10的数据。而如果要查询更多数据就需要修改分页参数了。 不过,elasticsearch内部分页时,必须先查询 0~1000条,然后截取其中的990 ~ 1000的这10条:图片查询TOP1000,如果es是单点模式,这并无太大影响。 针对深度分页,ES提供了两种解决方案,官方文档:search after:分页时需要排序,原理是从上一次的排序值开始,查询下一页数据。官方推荐使用的方式。 从ES7.1开始不推荐,建议用 after search方案。2.3.高亮2.3.1.高亮原理什么是高亮显示呢?

    2.4K51编辑于 2023-04-28
  • 来自专栏Elastic Stack专栏

    ES|QL:为搜索而生 - 引入评分和语义搜索

    在Elasticsearch 8.18和9.0版本中,ES|QL增加了许多新功能,包括:支持评分语义搜索匹配功能的更多配置选项新的KQL功能在这篇博客中,我们将回顾这些8.18版本的功能以及计划添加到ES |QL中的其他令人兴奋的新功能,以加强我们在将ES|QL打造成现代搜索语言方面的投入。 只需将索引字段映射为semantic_text,即可为语义搜索设置您的索引。查看我们的语义文本搜索教程以获取更多详细信息。使用ES|QL进行混合搜索ES|QL使得同时进行语义和词法搜索变得简单。 超越8.18和9.0在未来的版本中,我们将为ES|QL增加更多的搜索功能,包括向量搜索、语义重排序、增强的评分自定义选项以及组合混合搜索结果的附加方法,如互惠等级融合(RRF)。 跟随在ES|QL中进行搜索和过滤的教程,进行一次对本文所述功能的实践介绍!

    45210编辑于 2025-04-27
  • 来自专栏人生代码

    ES6ES7ES8ES9ES10常用特性和新特性

    ES6 ES6在ES5的基础上新增了一系列特性,这里仅列出常用特性 变量的改变,添加了块级作用域的概念 let声明变量(块级作用域),let是更完美的var,它声明的全局变量不是全局属性widow的变量 a[6](); // 10 // let const a = []; for (let index = 0; index < 10; index++) { a[index]=function ( bSet.has(v)); // [ 1 ] ES7 ES7在ES6的基础上添加三项内容:求幂运算符(**)、Array.prototype.includes()方法、函数作用域中严格模式的变更。 async、await异步解决方案 提出场景有两个:JS是单线程、优化回调地狱的写法。 'react'.padStart(10, 'm') //'mmmmmreact' 'react'.padEnd(10, 'm') //' reactmmmmm' 'react'.padStart

    1.8K30发布于 2020-06-28
  • 来自专栏CES

    【腾讯云ES】让你的ES查询性能起飞:Elasticsearch 搜索场景优化攻略“一网打尽”

    一、 背景 Elasticsearch是一个基于Lucene库的开源搜索引擎,简称ES。 亿内,如果超过建议滚动; 分片的数量通常建议小于或等于ES 的数据节点数量,最大不超过总节点数的2倍,通过增加分片数可以提升并发; 分片数越多长尾效应越明显,所以并不是越多越好,在搜索场景合理控制分片数也可以提升性能 (腾讯云ES推出的自研自治索引 能够帮助用户自动实现时序索引裁剪,在日志业务海量数据的某些场景下,性能优化效果10倍+) 分片裁剪:例如,用户可以在查询URL 指定 preference=_shards 当客户端发生流量倾斜后,ES 默认会对发送到该可用区的查询,会优先查该可用区的副本,旨在减少搜索延迟,但这个机制在高并发场景下也可能会导致可用区查询流量不均。 10 倍。

    14.3K1812编辑于 2024-05-10
  • 来自专栏林雍岷

    本地搜索优化:更多优化技巧

    当你商户信息在本地搜索找不到的时候,就要考虑做本地优化,服务于大型商业区,但你的企业实际上位于该地区的边缘。 本地搜索优化实际操作中遇到的问题 人们在寻找私人牙医时看到的地图,一个牙医所在的城市本身很有名,但是搜索结果排名并没有给他们显示在好排名的位置,如果牙医的位置错误,就很难获得展示,这是本地商户系统真正的弱点 本地搜索优化技巧 通过优化自然搜索页面来改善本地搜索排名,在之前讲座中解释了搜索引擎本地商户列表与网站相关联,下面是本地搜索优化的技巧: 一、自然优化可能有助于本地列表 你的网站排名越好,自然搜索结果排的位置越好 二、优化页面 在页面重要位置带上地理位置的关键词,外链锚文本通常是位置+关键字。 五、谷歌活动搜索优化 可以根据地址将事件与特定业务相关联,谷歌则会将事件信息放到本地商户列表中,或者用户搜索活动信息的时候显示在搜索结果中。

    91410发布于 2019-07-03
领券