akka-typed(0) - typed-actor, typed messages

akka 2.6.x正式发布以来已经有好一段时间了。核心变化是typed-actor的正式启用,当然persistence,cluster等模块也有较大变化。一开始从名称估摸就是把传统any类型的消息改成强类型消息,所以想拖一段时间看看到底能对我们现有基于akka-classic的应用软件有什么深层 ...

一起学scala--控制结构和函数

你将学到如何在scala中使用条件表达式、循环和函数。在scala中,if表达式是有值的,块也有值--是它最后一个表达式的值,几乎所有构造出来的语法结构都有值,这个特性使程序更加精简。 ...

一起学scala--基础

scala基础 安装scala(不推荐使用最新版本,2.11.x够用了) "scala官网" "2.11.12版本下载页面" 这里我选择2.11.12版本,在下载页面往下拉,选择scala 2.11.12.msi(windows用户),msi安装比较简单,一直点点就行。如果下载速度慢,建议用迅雷。 ...

search(13)- elastic4s-histograms:聚合直方图

在聚合的分组统计中我们会面临两种分组元素类型:连续型如时间,自然数等、离散型如地点、产品等。离散型数据本身就代表不同的组别,但连续型数据则需要手工按等长间隔进行切分了。下面是一个按价钱段聚合的例子: POST /cartxns/_search { "size" : 1, "aggs": { "sal ...

search(12)- elastic4s-聚合=桶+度量

这篇我们介绍一下ES的聚合功能(aggregation)。聚合是把索引数据可视化处理成可读有用数据的主要工具。聚合由bucket桶和metrics度量两部分组成。 所谓bucket就是SQL的GROUPBY,如下: GET /cartxns/_search { "size" : 2, "aggs": ...

search(11)- elastic4s-模糊查询

很多时候搜索用户对查询语句具有模糊感觉,他们只能提供大约的描述。比如一个语句的部分,或者字句顺序颠倒等。通过模糊查询可以帮助用户更准确的找出他们希望搜索的结果。 模糊查询包括前后缀,语句(phrase)查询。前缀查询在非文本查询和全文查询字段中使用是有着不同的效果:在非文本字段查询中我们需要严格按照 ...

search(9)- elastic4s logback-appender

前面写了个cassandra-appender,一个基于cassandra的logback插件。正是cassandra的分布式数据库属性才合适作为akka-cluster-sharding分布式应用的logger。所以,cassandra-appender核心功能就是对logback消息的存写部分了 ...

search(8)- elastic4s-search-query模式

上篇提过query模式除对记录的筛选之外还对符合条件的记录进行了评分,即与条件的相似匹配程度。我们把评分放在后面的博文中讨论,这篇我们只介绍query查询。 查询可以分为绝对值查询和全文查询:绝对值查询是指非text类型字段的查询,全文查询一般指对于text字段的查询。如果需要对text字段进行绝对 ...

search(7)- elastic4s-search-filter模式

现在我们可以开始探讨ES的核心环节:搜索search了。search又分filter,query两种模式。filter模式即筛选模式:将符合筛选条件的记录作为结果找出来。query模式则分两个步骤:先筛选,然后对每条符合条件记录进行相似度计算。就是多了个评分过程。如果我们首先要实现传统数据库的查询功 ...

search(6)- elastic4s-CRUD

如果我们把ES作为某种数据库来使用的话,必须熟练掌握ES的CRUD操作。在这之前先更正一下上篇中关于检查索引是否存在的方法:elastic4s的具体调用如下: //删除索引 val rspExists = client.execute(indexExists("company")).await if ...

search(5)- elastic4s-构建索引

按照计划,这篇开始尝试用elastic4s来做一系列索引管理和搜索操作示范。前面提过,elastic4s的主要功能之一是通过组合Dsl语句形成json请求。那么我们先试试组合一些Dsl语句,再想办法产生出json请求文本,然后在kibana控制台中验证它的正确性。 首先看看elastic4s提供的一 ...

search(4)- elastic4s-ElasticDsl

上次分析了一下elastic4s的运算框架。本来计划接着开始实质的函数调用示范,不过看过了Elastic4s的所有使用说明文档后感觉还是走的快了一点。主要原因是elasticsearch在7.0后有了很多重点调整改变,elastic4s虽然一直在源代码方面紧跟ES的变化,但使用文件却一直未能更新,所 ...

Scala学习系列(二)——环境安装配置

Scala下载地址:https://www.scala-lang.org/download/ 一、安装JDK 首先,因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK 二、二进制安装方式 我们可以直接用二进制安装Scala 还是下载网址 Windows安装Scala编译器 访问 ...

search(2)- elasticsearch scala终端:elastic4s

上篇谈到:elasticsearch本身是一个完整的后台系统,对其的操作使用是通过终端api进行的。elasticsearch本身提供了多种编程语言的api,包括java的esjava。而elastic4s是一套基于esjava之上的scala api。 先看看scala 终端 ElasticCli ...

search(1)- elasticsearch结构概念

上篇提到选择了elasticsearch ES作为专业化搜索引擎的核心,这篇讨论一下ES的基本结构和应用概念。首先,从硬结构方面来讲:ES是在一个集群(cluster)环境里运行的,所以ES应该具备高可用和高扩展特性,因为系统可以分布在机器内无数个节点(node)服务器上运行。ES的索引(index ...

search(0)- 企业搜索,写在前面

计划研究一下搜索search,然后写个学习过程系列博客。开动之前先说说学习搜索的目的:不是想开发个什么搜索引擎,而是想用现成的搜索引擎在传统信息系统中引进搜索的概念和方法。对我来说,传统的管理系统legacy i.t system已经走到了尽头。根本原因是信息在量上的爆发增长,传统数据管理方式已经无 ...