Solr Overseer

Overseer也可以称为cluster leader,也就是集群的主,与shard leader有着很大的区别,shard leader主要是为了保证collection数据的一致性,而Overseer则是为了保证集群操作以及数据的安全性。

GIT简要教程

Github免密操作

客户端生成SSH Key

$ ssh-keygen -t rsa -C "youremail@example.com"

Solr Hard/Soft commits和Transction logs

概述

  • Transaction log(tlog) 记录原始文档用于recovery,solrcloud中每个节点都自己的tlog。在更新时整个文档会被写入tlog,对于原子(atomic)更新,不光要更新整个文档需要写入tlog,该文档的历史版本也会被写入。总的来说tlog主要是保证文档的一致性,当JVM意外停止的时候,保证索引时最新的。

    • 注意:如果服务没有优雅的终止的话,在下次启动的时候将使用tlog进行重演。所以如果tlog很大的话,实例启动将会变得很慢。

SolrCloud-分布式索引

2018.09.05,深夜,最近因为各种事情,心烦意乱,睡不着,索性翻身起来,写一些没有营养的的东西。

个人认为,solr的分布式存在两种:

  • 伪分布式,即单shard但存在主从。
  • 真正的分布式

因为我认为真正意义上的分布式,不光是分流量,同样需要做到计算的分布式。但是呢,无论是哪一种,但凡涉及到数据的一致性的系统,基本都会考虑只允许主写,solr也是一样,只允许shard leader进行索引的索引的写入,再由主向从写入。

SolrCloud中的那些东西

因转到人机对话项目上已经有一段时间了,甚是想念solr,所以特地来回顾一下solrcloud中的一些概念,内容不是很全,而且也没有逻辑,就当是备忘吧。

很多分布式系统都会选用zookeeper作为分布式的协调者,solr同样也不例外,在solr中zookeeper主要起到以下作用:

  • 依托于znode,实现集中配置存储
  • 依托于session以及watcher机制实现集群状态检测和提醒
  • overseer和shard leader选举

编辑距离

当我们在电商网站上搜索一个关键词想买一个东西的,例如:“appe”这个词,但是这个词对于电商网站来说,并没有相应的商品,但是如果直接返回空的列表页的话,用户体验还是相当差的,所以通常电商网站上会给出:

  • 你是不是想搜索“apple”
  • 直接返回apple对应的结果

这其实就是拼写纠错。

Solr优化系列-缓存

如果你的索引量太小,不要折腾这些东西,个人觉得真心没必要,因为没有效果,不如把时间花在其他技术上。

Java加载Tensorflow PB模型

Tensorflow是一个用来解决数学计算的计算框架,其实不管是CNN、RNN或者是各种变种神经网络模型,本质上都是各种数学公式堆叠在一起的网络结构,Tensorflow的亮点就在于采用数据流图的方式将数学公式粘合在一起,数据流图中的node一般都是各种数学操作,而edge则表示操作结果的数据流向。