- 博客(10)
- 收藏
- 关注
原创 [Elasticsearch]高亮使用方式及参数详解
使用高亮时,主要注意设置number_of_fragment及fragment_size,如遇深度高亮使用可以进行highlight_query的使用;在开启词向量后,可以尝试使用fvh高亮器提升效率(优化永无止境)
2023-07-14 19:22:13
3526
1
原创 [Elasticsearch]源码解析:ES如何避免脚本中的危险操作
在IK的源码中也有很多涉及Security相关的操作,但Java9以后相对使用SecurityManager的时候比较少;一些Java开源的组件在使用过程中出现思考或问题,可以尽量参考源代码定位相关位置,从而得到固若金汤的结论;
2023-06-01 17:32:50
458
原创 [Elasticsearch] N-Gram配合TermVectors提取新兴词
简单来说,N-Gram是一种基于统计语言模型的算法,其基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口切分,形成了长度为N的字节片段序列。通俗来讲是一种滑动窗口的分词效果,举个例子;text:"这是斯蒂芬库里的热区"N-Gram(3): [这是斯,是斯蒂,斯蒂芬,蒂芬库,芬库里,库里的,里的热,的热区]Elasticsearch配备内置的N-Gram的Tokenizer及N-gram的TokenzierFilter,可以轻松实现类似上文的效果;
2023-05-06 19:45:48
221
原创 [Elasticsearch] refresh/flush/merge概念及Api
写入数据时,会首先写入到内存缓冲区,并记录相关translog。内存缓冲区的数据会在index.refresh_interval时间后,自动写入segment中。过多的segment会触发merge操作,目的旨在整理segment,防止segment过多影响搜索效率。而flush操作会将segment们落入到磁盘当中,并同时记录提交点,删除旧的translog释放空间;当然,es提供了手动的refresh操作,手动的flush操作,手动的强制merge操作;
2023-04-23 18:23:57
1333
1
原创 [ElasticSearch] explain使用方式与结果解析
例如上方我们对搜索进行我们搜索"文明",分词器为strandard,可以看到details将该词分解为'文','明'的两部分评分详情并描述了对其。ElasticSearch根据版本或配置会使用不同的评分方式,所以explain Api的explanation信息公式会有不同;这样对每项的计算都被包含在explain中,可以依据此对评分进行清晰的排查和计算。在此例中,我们可以看weight对应的details即为所的评分的详情信息;而每层对应所需的指标都嵌套在其details属性中;
2023-04-14 11:48:35
1288
原创 [ElasticSearch]painless脚本获取字段方式及性能比较
2.通过params['_source']['fieldname']获取字段会获取到整个_source的json对象并从中获取字段,相比第1种,此种方式会相对较慢;例如在script_fields中,可以同时使用doc['fieldname']及params['_source']['fieldname']的方式。一般在进行查询时并需要对字段进行额外获取值,并利用值进行无状态化操作时,更推荐使用此方式;1.通过doc['fieldname']获取字段,将会加载该字段的相关术语及字段值本身;
2023-04-04 19:43:10
920
原创 [Elastcisearch] 通过聚合完成热度分数计算
一、概要分配给我的需求中,有一个需求是基于行为索引完成热度排行,我的想法就是通过聚合配合脚本语言完成该需求。二、前置工作创建行为索引
2021-09-30 16:39:20
433
1
原创 [ElasticSearch] 三种方式进行ES检索评分控制
一、概要在使用ES进行搜索时,评分的控制是非常关键的。而如何对搜索评分进行定制化控制,让其更符合我们想要的评分结果呢?对boost参数进行控制 通过rescore对查询结果的评分进行二次控制 使用function_score作为终极武器对评分进行函数控制二、对比&&选择 boost rescore function_score 使用场景 在常规搜索中,经常使用boost进
2021-09-24 14:55:49
3563
原创 [ElasticSearch]Suggest查询建议(自动补全&纠错)
1) 概念查询建议,能够为用户提供良好的使用体验。主要包括: 拼写检查(纠错) 自动建议查询词(自动补全)2) Suggest种类及参数2.1 Term SuggesterTerm Suggester: 对给入的文本进行分词,为每个词进行模糊查询提供词项建议。(建议对搜索词进行长度控制,超过长度则不会进行TermSuggest,原因也是一般Term Suggester适用于单个词使用 把得分最高的推荐词进行返回代表纠错)参数 描述 text 建议文本,即要...
2021-09-09 15:46:04
4308
原创 [ElasticSearch]间隔搜索IntervalsQuery及JavaSDK简单调用
1) 概念* intervals query 允许用户精确控制查询词在文档中出现的先后关系,实现了对terms顺序、terms之间的距离以及它们之间的包含关系的灵活控制 通过intervals query(间隔搜索) 我们可以完成各个terms在于不同位置的灵活搜索 * 下面来举一个例子来说明间隔搜索的适用场景: 我们在某个索引中3个包含my_text字段的文档 文档1: {"my_text":"curry bad shooter.... "} 文档2: ...
2021-08-26 22:11:11
1364
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人