自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (5)
  • 收藏
  • 关注

原创 Elasticsearch基础整理 脑图

Elasticsearch知识整理,基于ES6.7.1 主要涉及ES集群各模块功能及使用说明,集群选举流程 读取/写入流程等等,不涉及dsl等具体操作,后面会持续更新!需要完整文件 到我 公众号 ‘Lucene Elasticsearch 工作积累’ 回复 ‘es基础’ 就可以了!如果喜欢搜索技术请来我的公众号吧 ‘Lucene Elasticsearch 工作积累’每天会持续更新搜索相关技术以下是脑图中的具体内存大纲。集群节点角色主节点Master node )维护集群状态。集群状

2020-09-11 10:50:44 1014

原创 JAVA基础知识整理 2020

最近在复习JAVA基础知识,整理了脑图 分享出来,内容包括了 JVM、并发编程、容器、问题总结、数据结构、github使用,有时间还会持续更新,大家可以一起学习!需要完整文件 到我 公众号 ‘Lucene Elasticsearch 工作积累’ 回复 ‘java基础’ 就可以了!如果喜欢搜索技术请来我的公众号吧 ‘Lucene Elasticsearch 工作积累’每天会持续更新搜索相关技术...

2020-09-09 11:15:53 112

原创 IK分词器输出多类型词源

背景:IK分词器分为两种,粗粒度分词和细粒度分词,粗粒度会分为长词,细粒度分出的词比较多,会分出与词库中所有可匹配的词,现在我们想要这样的分词效果如:关键词:“北京青年路”粗粒度会分出:细粒度会分出:那么我们需要只分出整词、去掉包含词、相同词不去重 如下:1、歧义词处理这个功能实际上是用到了IK的歧义词处理,为什么粗粒度不展示包含词和重复词了?是因为做了歧义词过滤,过程如下:在IKAegmennter.java的next方法中进行歧义词处理歧义词处理分了两块,功能是一样的,只是处理

2020-08-30 17:43:46 292

原创 搜索补数(补充数据结果)优化

背景:有没有遇到某条件下搜索结果变少,多个搜索条件组合后结果变少或无结果的显现,这种问题怎么办?相信你们产品应该有很多种补充或删减搜索条件的逻辑,今天简单介绍下,我在搜索结果少的条件下做的一系列操作吧!1、观察现状分析一周搜索日志,分析每日搜索结果数的占比情况,对搜索结果数的分布有大概了解,Top100搜索结果分布如下图:从这个分布来看只有10个结果的搜索占了大头,再看一下,目前搜索补数策略的搜索结果数占比,依然是10个以内结果占大头,看来是要优化一下了,那么接下来分析下都是那些搜索条件引起的。

2020-08-29 23:48:34 254

原创 Lucece评分公式相关性实践(下)

背景:ES5及后面版本使用的Lucene6.2,所以默认使用的BM25评分公式,我们实践一下,看看BM25公式对打分的影响。1、BM25配置实验1)准备索引建立mapping,使用IK分词器 测试也可以用空格分词器,建立一个shard为了结果统一好看一些,因为评分是在Lucene中进行的,所以多个shard的IDF和字段平均长度 不是全局的,每个shard中的Index值是不一至。设置默认和自定义两个评分器,分别配置到text和title中。{ "settings": { "nu

2020-08-20 23:30:50 1249

原创 Lucece评分公式OKapi BM25原理解析(中)

背景:也不写什么背景了延续上篇写了TF/IDF的公式解析,本篇为BM25解析简单介绍。BM25起源于 概率相关性模型,而不是矢量空间模型,但是该算法与Lucene的实际评分功能有很多共同点。两者都使用Term词频率,逆文档频率和字段长度归一化,但是每个因素的定义都略有不同。与其详细解释BM25公式,不如将重点放在BM25提供的实际优势上。BM25是一个词袋检索功能,它基于每个文档中出现的查询词对一组文档进行排名,而不管它们在文档中的距离如何。它是一组评分功能,其组件和参数略有不同。该函数最突出的实例

2020-08-15 23:49:24 448

原创 Lucece评分公式TF/IDF 原理解析(上)

背影:

2020-08-11 23:12:43 771

原创 ABTest实验系统在搜索简单实践

背景:1、当我们要上一个排序策略,只有这个排序的优化方向,离线指标都是正向的,那么我们有勇气替换掉目前的排序吗?2、同一个功能点 有两种召回策略 离线评估都不错 上哪个留哪个?3、调整产品广告位或不同活动位在搜索列表中出现的位置,用对哪种方式是无感可接受的?等一系列线下只有方向但不能确定的事,我们可以把这类问题交给用户来让他们帮我们做正向的引导,前提是小流量不伤害用户为前提,实现 衡量 - 发现 - 迭代 - 验证 的过程,那么就有了ABTest。1、ABTest架构1)ABTest服务,用于读

2020-08-08 18:09:13 852

原创 Elasticsearch RequestCache和Fielddata Cache

背影:上篇分析了QueryCache,再把RequestCache也分析一下吧。1、RequestCache参与Cache条件从源码上看RequestCache默认是开启的,只对size=0的查询进行Cache,那么就需要在查询时加入参数"size": 0, 但这样会缓存命中总数,aggregations, suggestions。2、RequestCache配置1)index.requests.cache.enable 默认为true,启动RequestCache配置。2)indices.r

2020-08-03 13:40:28 450

原创 ElasticSearch Node QueryCache 原理分析

背景:最近要重启在集群更新些功能和插件,所以整理下集群不合理的配置一起改了,无意间发现一个Index 的 Cache命中居然为0,以为是限制了,查看配置都正常,看来得查查问题出在哪了,以下是查找原因过程和关于QueryCache的整理。1、ES QueryCacheElasticsearch 包含三个类型的读缓冲,分别为 Node Query Cache 、 Shard Request Cache 、 Fielddata Cache。本篇文章只介绍Node Query Cache,其它两个Cach

2020-08-02 14:39:15 529

原创 检索组合Query

背景:默认使用es做检索服务时 只是针对某个字段做检索,传入关键词调用检索服务,检索过程中ES分词部分我们无法控制细节和逻辑,从而影响检索效果,以下我给出简单策略供同学们扩展自己业务的思路。ES使用IK分词,支持 ik_smart/ik_max_word两种分词方式,在建立索引时使用ik_max_word最细粒度分词,原因是分尽量多的term增加召回匹配文档量,在检索时使用ik_smart粗粒度分词,原因是减少term增加检索速度和召回的准确性,配置可以在mapping中使用"search_anal

2020-07-30 17:23:57 162

原创 es-head安全登陆问题

在观察索引时一般习惯用es-head,如果你的运维加了安全限制你该怎么办?1、ES安全主要是加xpack,这个需要我们在使用访问es-head:9100后面加base_uri=&auth_user&auth_password就可以了 这个信息被es-head打开时就会读取并发送给ES做安全验证。<html> <head> <meta charset="UTF-8"> <title>elasticsearch-head</ti

2020-07-29 16:54:51 975

原创 Lucene TaxonoFacet原理

1、Facet索引第二种方式采用Taxono索引帮助实现。fullpathfull_pathfullp​ath1)在建立索引时,可以设置FacetsConfig的setindexFieldName(FieldName, FieldName别名),可以通过这种方式只统计单一Field数据个数。2)在检索统计时建立FastTaxonomyFacetCounts时就可以使用别名了。实现原理:当建立索引基础时没有设置FacetsConfig别名时,在基础索引中建立FieldName名为$facets的字段名

2020-07-26 14:41:56 155

原创 Elasticsearch扩展IK分词器

背景:Ik分词器支持默认分词器,可以扩展分词词典,但想扩展一个分词器类型就需要个性IK源码了,扩展后的分词器与原生分词器可混用,也可单独使用。下面简单介绍下修改过程同大家分享共同学习。过程:1、克隆IK源码并测试IK插件1)克隆地址:https://github.com/medcl/elasticsearch-analysis-ik要根据你目前使用的es版本找到合适IK的版本,版本选择:2)这里面有个坑如你的ES是6.7.1,IK克隆的也是6.7.1当编译好后,发现报IK插件与ES版本不一至

2020-07-26 13:50:31 299

原创 es部分监控命令

原文地址:首先确定当前节点是什么角色?是不是数据节点GET /_cat/nodes?h=name,node.role集群级别的设置GET /_cluster/settings?include_defaults=true索引级别的设置GET indexName/_settings?include_defaults=true4.查看集群运行中的任务http://172.23.10.124:9201/_tasks还可以使用 actions=*search&detail

2020-07-22 19:39:37 339

原创 支持打印Lucene5数字域Query

Lucene5 在打印数字Query时 Query.toString是不支持的 只会打印出类信息,所以在原源基础上做了修改可打印数据域。代码如下:package searcher;import java.util.HashSet;import java.util.Set;import org.apache.lucene.index.Term;import org.apache.lucene.search.BooleanClause;import org.apache.lucene.sea

2020-07-22 14:23:58 117

原创 Lucene IndexSearch方法解释

Lucene IndexSearch方法解释// 获取field的统计集合包括maxDoc,docCount,sumDocFreq等。searcher.collectionStatistics(field);// 通过query创建一个Weight对像。searcher.createNormalizedWeight(query);// 通过索引ID获取Documentsearcher.doc(docID);// 调用indexreader.document方法。指定Doc的FieldType读

2020-07-22 14:19:02 409

lucene-demos-2.4.0.jar 这个是最新的lucene包了请甚用

lucene-demos-2.4.0.jar 这个是最新的lucene包了请甚用

2009-06-30

jasper-runtime.jar 是在你想要时给与你的最大帮助

jasper-runtime.jar 是在你想要时给与你的最大帮助

2009-06-30

Lius.jar能运行的lucence查看索引的小工具

对于学习有帮助 Lius.jar能运行的lucence查看索引的小工具

2009-06-30

lucene_构建一个简单的WEB搜索程序

lucene_构建一个简单的WEB搜索程序

2009-06-30

ecside=grid

很全的了与JAVA配合使用的

2008-03-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除