态度决定高度,细节决定成败

疯狂的码农


  • 首页

  • 关于

  • 分类

  • 归档

  • 站点地图

  • 留言

如何在产线上玩转SolrCloud

发表于 2020-02-16 |
字数统计: 4.2k 字 | 阅读时长 ≈ 16 分钟

如何在产线上玩转SolrCloud

由于笔者所在的公司一直使用Solr作为主要搜索引擎,并且随着数据越来越多,单节点的Solr已经不能撑住线上服务的压力,我们需要升级到SolrCloud,并且为了更好的配合数据更新提高客户相应速度,我们需要将原先的每天定时更新模式改成实时更新模式。(这里的每天定时更新并不是直接写到生产Solr上,而是在单独的服务器也保存这全量的数据,然后每天将增量的数据重新index一遍,然后定点将全量的数据copy到线上的机器,然后重启线上的服务进行切换)。这里分享下我们迁移到SolrCloud模式上的所遇到的问题以及解决方案![这里的Solr版本是7.7.2]

阅读全文 »

Solr bug 小记

发表于 2019-12-23 |
字数统计: 1.1k 字 | 阅读时长 ≈ 4 分钟

Solr Bug 小记

做为Apache的顶级开源项目之一,一般来说大家遇到Solr中的源码bug的概率还是非常底的,但是笔者还真就遇到了一个,突然感觉幸福来的太突然了。(因为笔者并不是这个bug的第一发现这和解决者,所以这里笔者更多的是记录这个bug的发现和解决方式) [这里的Solr版本是7.7.2]

Bug复现

这个bug复现的条件有三个:

阅读全文 »

Meet Solr Lucene Codec

发表于 2019-12-14 |
字数统计: 8.3k 字 | 阅读时长 ≈ 34 分钟

小试 Solr/Lucene Codec

Codec 是什么

Lucene 从4.0版本开始提供codec api,简单的来说Lucene通过codec机制来读写索引文件,说白了就是一层数据访问层的api,正常来说我们在使用Lucene/Solr的时候是不用关心这一层细节的,因为默认的codec实现已经经过了大量的细节优化,但是如果你需要修改索引的存储方式,那么codec就是你的入手之处。
因为这里涉及到很多细节,希望大家先不用关心代码细节,而是关注具体的流程和原理,最后对照代码来理解这篇博客,当然如果你还有不明白的地方,欢迎邮件我fengqingleiyue@163.com

自定义Codec

既然我们知道了codec是什么,那么作为程序员的我们,就会想到-> 我们怎么自定义一个codec呢?

阅读全文 »

Text Retrieval and Search Engines 4

发表于 2019-10-28 |
字数统计: 2.3k 字 | 阅读时长 ≈ 8 分钟

Text Retrieval and Search Engines学习笔记(四)

这篇文章是接着上一篇Text Retrieval and Search Engines学习笔记(三) ,这一篇我们介如何绍下实现Vector Space Model所需要的一些步骤和流程。

System Implementation

前面我们介绍了Vector Space Model的一种实现-> BM25,虽然我们从数学上已经定义好了rank的函数,但是我们还得想办法进行高效的计算rank函数,因为有的时候我们会在我们的搜索引擎中存放千万甚至几十亿的数据,为了让用户在几百毫秒的时间内完成一次检索,我们必须非常高效的计算rank函数。

阅读全文 »

Elasticsearch docker volume permission issue

发表于 2019-10-27 |
字数统计: 2k 字 | 阅读时长 ≈ 9 分钟

Elasticsearch之docker安装

最近由于工作原因,需要倒腾下Elasticsearch ,虽然本人的工作中,大部分情况下使用的都是Solr,但是这并不能挡住我学习Elasticsearch的激情,这里我并不做这两个工具的好坏,只要用的顺手用的舒服就是好工具。这里我以docker安装为例子。

环境准备

笔者使用的环境为华为云上的一台虚拟机,这里简单的描述下docker和docker-compose的安装

1
2
yum -y install docker docker-compose 
#具体的版本为: docker-compose-1.18.0-4.el7.noarch , docker-1.13.1-103.git7f2769b.el7.centos.x86_64

docker 安装elasticsearch 还是比较简单的,我们直接参考官方文档,这里我们使用的版本号码是7.4.1。大部分情况下,如果你是为了体验elasticsearch,或者搭建一个简单的测试环境,那么elasticsearch的官方文档应该就能解决这个问题,但是由于笔者需要存储大概几十万的数据进去,而且由于使用的是云上的环境,一般来说系统盘的小大都很小(常见的值为8GB),所以必须将elasticsearch的data目录挂载到数据盘上。而问题就出现在docker的目录映射上。

阅读全文 »

Text Retrieval and Search Engines 3

发表于 2019-10-17 |
字数统计: 2.3k 字 | 阅读时长 ≈ 8 分钟

Text Retrieval and Search Engines学习笔记(三)

这篇文章是继上一篇Text Retrieval and Search Engines学习笔记(二) 的后续部分,这一篇我们重点介如何绍改进Vector Space Model

Vector Space Model

在上一篇我们介绍了由BOW模型和Dot Product相似度计算方法组成的Simplest Vector Model ,在某种成都上说,这个方法确实解决了一些我们对文档排序的一些需求,但是从上面的例子中我们也可以简单的发现两个问题:

阅读全文 »

Text Retrieval and Search Engines 2

发表于 2019-10-09 |
字数统计: 1.7k 字 | 阅读时长 ≈ 6 分钟

Text Retrieval and Search Engines学习笔记(二)

这篇文章是继上一篇Text Retrieval and Search Engines学习笔记(一) 的后续部分,这一篇我们重点介绍如何定义和计算f(q,d)

Text Retrieval Methods

首先,我们得知道如何设计一个排序方法,这里我们可以列举一个好的排序方法都有那些特征或者属性

  • 关于Query :q=q1,…,qm, qi $\in$ V
  • 关于Document: di=di1,…,dij, dij $\in$ V
  • 排序方法: f(q,d)$\in$R (这里表示排序方法的值在实数域,说人话就是可以取任意实数)
  • 一个好的排序方法必须将相关的文档排在不相关的文档之前,那么问题来了,我们如何衡量query和document的相关的似然度呢?
  • 我们必须给排序模型/方法下一个明确的定义,并且这个定义还是可以明确计算的(说白了就是能够以数学公式的方式定义出来,我们可以通过数学公式计算出相关度)
    阅读全文 »

Text Retrieval and Search Engines 1

发表于 2019-10-09 |
字数统计: 2.4k 字 | 阅读时长 ≈ 8 分钟

Text Retrieval and Search Engines学习笔记(一)

这篇文章主要是记录了学习Coursera上的课程Text Retrieval and Search Engines的一些笔记和个人的理解,这个课程总体来说比较偏理论,虽然实战非常重要,但是有的时候我们也需要学一些理论知识,这样我们才可以慢慢的知其然,并且知其所以然。

课程大纲

  • Natural Language Content Analysis
  • Text Access
  • Text Retrieval Problem
  • Text Retrieval Methods
  • Vector Space Model
  • System Implementation
  • Evaluation
  • Probabilistic Model
  • Feedback
  • Web Search
  • Recommendation
    阅读全文 »

玩转Solr源码之(三)Solr源码Deploy

发表于 2019-10-03 |
字数统计: 3.8k 字 | 阅读时长 ≈ 18 分钟

玩转Solr源码之—Solr源码Deploy

这篇文章是玩转Solr源码系列的第三篇,紧接着上一篇的源码Deug。如果你已经修改好了源码,并且调试ok,想要将源码打包后分发给同时或者其他项目引用,那么这边文章一定能够帮助你。

阅读全文 »

玩转Solr源码之(二)Solr源码Debug

发表于 2019-10-01 |
字数统计: 742 字 | 阅读时长 ≈ 3 分钟

玩转Solr源码之—Solr源码Debug

这篇文章是玩转Solr源码系列的第二篇,紧接着上一篇的源码导入,如果你还对如何将Solr源码导入到IDE还不了解的话,建议先看源码导入的部分。

定位源码入口

Solr 的源码入口为org.apache.solr.client.solrj.StartSolrJetty,主方法也比较简短,

阅读全文 »

12
FQL

FQL

一个专注为什么的博客

13 日志
39 标签
RSS
GitHub E-Mail
© 2018 — 2020 FQL
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4
访客数 人 总访问量 次