`
donlianli
  • 浏览: 336516 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Elasticsearch...
浏览量:216677
社区版块
存档分类
最新评论
文章列表
在常规数据库中,我们都知道有一个sql就是group,分组。如果主表只有对应的一个列记录的分组的ID,那么还好统计,比如说每本书book表,有一个分类catId,记录是属于哪一类的书,那么直接按照catId进行分组即可。可是在实际应用种,并非如此简单。一本书往往属于多个分类,比如:某本书既属于科技类书,又属于儿童类书,要求按照这两种条件进行筛选,都能筛选出来,如果要求按照分类进行统计数量,数据库怎么group?我们且抛开种种解决方案,来看看Elasticsearch里面对这种需求,是多么的容易统计。   首先,我们需要造些数据,需要用到一个模型,这个模型定义了一个type,就算类型吧,我 ...
学习Mongodb已经有半年多了,为啥学习它,工作需要啊。好了,废话不说,总结在实际项目应用中的几点问题。   学习总结 首先,mongodb基本上既照顾到了sql某些语法,又有nosql的许多优点。入门简单,上手快,所以很多人开始探索nosql及云计算时,基本上都是从mongodb开始。但有几点需要注意: 1、mongodb不支持事务,所以,在你的项目中应用时,要注意这点。无论什么设计,都不要要求mongodb保证数据的完整性。但是mongodb提供了许多原子操作,比如文档的保存,修改,删除等,都是原子操作。所谓原子操作就是要么这个文档保存到Mongodb,要么没有保存到Mongo ...
转载请标明出处:http://donlianli.iteye.com/blog/1905552   熟悉ES中的几个关键概念: 节点(Node):一个elasticsearch运行的实例,其实就是一个java进程。一般情况下,一台机器运行在一台机器上。 集群(Cluster): 好几个有相同集群名称 ...
转载请标明出处:http://donlianli.iteye.com/blog/1904064   搜索引擎我也不是很熟悉,但是数据库还是比较了解。可以把搜索理解为数据库的like功能的替代品。因为like有以下几点不足: 第一、like的效率不行,在使用like时,一般都用不到索引,除非使用前缀匹配,才能用得上索引。但普通的需求并非前缀匹配。 第二、like的不能做到完全的模糊匹配。比如like '%化痰冲剂%'就不能把”化痰止咳冲剂“搜索出来。但是普通的用户,需求就是这样 第三、like无法根据匹配度进行排序。数据库匹配某个关键字的记录可能有好几千,但是用户只能看100条,数据 ...
详细解法见:http://www.elasticsearch.org/tutorials/too-many-open-files/ 总体意思是,在linux系统中,使用了非root用户启动的elasticsearch,但Linux对这些非特权用户打开的文件格式做了限制。导致elasticsearch报错。   修改方法,使用root编辑/etc/security/limits.conf,在最后面增加   elasticsearch soft nofile 32000 elasticsearch hard nofile 32000   修改之后,切换到elasticsearch ...
转载请标明出处:http://donlianli.iteye.com/blog/1902840   其实在上一篇博客中,只要大家能看懂,就应该能够根据其代码做到举一反三了,依次类推ES的批量操作Bulk,搜索功能Search等,但在这里还是简单讲一下。   批量索引和删除   BulkRequestBuilder bulkRequest = client.prepareBulk(); for(int i=500;i<1000;i++){ //业务对象 String json = ESUtils.toJson(new LogModel()); I ...
1、什么是内存映射文件(memory mapped files)? 内存映射文件是操作系统通过调用函数mmap()创建的一个放在内存中的一个数据文件。这种文件可以当做一个从零开始的内存或者数组,你可以将内容放在任意位置。内存映射文件是m ...
转载请标明出处:http://donlianli.iteye.com/blog/1902238   ElasticSearch(名称太长,后面简称ES)作为一个搜索引擎,目前可谓是如日中天,几乎和solr齐驾并驱。关于他能做什么,跟云计算有什么关系,在此不再描述。但是ES的官方文档,特别是关于java的客户端文档,真是少的可怜,甚至连个完整的增删改的示例都没有。在此,我就献丑了。 在开始讲解之前,还是先做个铺垫,为了能够有一个可以索引的模型,我们自定义了一个模型,暂时起个名称叫LogModel吧,这个模型有各种数据类型,int,long,String,list,但千万不要认为这是跟记录 ...
    我们在最初学习时,在Java中,String被列为复合性数据类型,但现在来看,其实他真正的是一个不可变类,而与之属于一类的还有Integer,Long,Double,Float,Boolean等对象。所有这些类都有一个共同的特性,就是不可变性。一旦这个类被初始化,他的状态不再变化。这些类都被设计成final类型的,这些类只有一个构造方法。一旦被构造出来,就再也无法修改其内部状态。    这些作为原始数据类型的封装类,可以直接参与一些集合类的运算,比如,可以直接在一个String的list里面,将某个string给remove掉,可以将两个list做差集等等,总之,这些基本的不可构建 ...
       spring,真是一个好东西;性能,真是个让人头疼又不得不面对的问题。如何排查出项目中性能瓶颈?如何迅速定位系统的慢查询?在这我就不说spring自带的性能监控器了,实在是有些简陋。下面就说说我自己写的这个性 ...
Mongodb FAQ(开发者篇),是官方文档的翻译。如有翻译不到之处,还请谅解。   1、Mongodb中的命名空间是什么东西? 命名空间是连接数据名称和collection名称的重要桥梁,数据库与collection使用.号分隔。Collection是document的容器,在这个容器中,所有的documents共享一个或多个索引。数据库是一组存储在硬盘上的数据文件的collection的集合(一个数据库对应一个数据文件和命名空间文件)。举例: 名字为acme.users的document, acme是数据库的名称, users 是collection的名称. Collection ...
Mongodb FAQ(基础篇),是官方文档的翻译。如有翻译不到之处,还请谅解。 1、Mongdb是什么数据库? mongodb是一个面向文档(document)的数据库,既不支持表连接,也不支持事务。主从复制,故障自动转移,内建的水平扩展是mongodb的几个主要特性。同时还支持二级索引,表达式查询语言,基于文档的原子写操作,一致性读取。   2、Mongdb有表吗? mongodb的collections和RMDB的table的两个重要区别。一是你可以只向一些document添加某一列的属性,而不用将collection里面的所有document都增加列属性。二是Documen ...
前言: 代码简洁与性能高效无法两全其美,本系列文章专注于并发编程,提高性能,本文章是在读 Java Concurrency In Practice时自己总结的一些体会。有理解不正确的地方,还请指出。     请回答以下几个问题: 问题一、你的项目是否运行在多核CPU甚至多CPU的服务器上? 问题二、你的项目中,是否使用到了线程池? 问题三、你的项目是否使用到了集群或者用到了分布式框架? 问题一不用想,任何人都会回答是,那么恭喜你,你已经有必要看看并发编程了。如果你符合以上三个问题的所有条件,那么恭喜你,你应该好好学习并发编程了,并发已经深深渗人你的项目中,甚至已经开始出现一些 ...
前言:代码简洁与性能高效无法两全其美,本文章专注于大并发程序的性能,如果您追求代码简洁,本文章可能不太适合,因为本文章主要讨论如何写出在高并发下也能运行很好的代码。   并文章属于Java并发编程实战中例子。但结合实际场景进行了阐述。 通常,我们如果写一个单实例模式的对象,一般会这样写: 写法一:   public class Singleton { private static final Singleton instance = new Singleton(); /** * 防止其他人new对象 */ private Singleton(){ S ...
         想让系统启动后就自动启动memcached服务,怎么办呢?使用以下脚本(注:此脚本适用于redhat系列系统,centos,fedora,redfag等。 创建文件memcached。将memcached文件放到/etc/init.d的目录下面,然后添加执行权限,使用service命令添加服务即可。 添加执行权限命令:chmod u+x memcached 添加服务: chkconfig --add memcached chkconfig --level 235 memcached on 启动服务: service memcached start   脚本m ...
Global site tag (gtag.js) - Google Analytics