- 浏览: 340386 次
- 性别:
- 来自: 北京
博客专栏
-
Elasticsearch...
浏览量:218545
最新评论
-
不帅sina:
ElasticSearch视频教程网盘地址:https://p ...
elasticsearch 1.x优化 -
不帅sina:
ElasticSearch视频教程网盘地址:https://p ...
Elasticsearch1.x Java教程 -
sp42:
通俗易懂 谢谢哦
Elasticsearch store属性理解 -
donlianli:
litianyi520 写道按照教程上面创建的mapping ...
Elasticsearch1.x Java教程 -
donlianli:
Kogasa 写道大手你好,我看了你的这份教程非常有帮助。我现 ...
Elasticsearch1.x Java教程
文章列表
本文为官方文档的译文加个人理解。作者翻译时,elasticsearch(下面简称es)的版本为1.2.1。
请支持原创:http://donlianli.iteye.com/blog/2090177
1、系统级别及设置方面
1.1 es启动时,默认是作为一个前台程序启动。如果你想让es作为一个后台守护进程,需要在启动命令后面加-d参数。
1.2 命令行参数,默认不需要再加-Des.前缀。新的格式如下:
./bin/elasticsearch --node.name=search_1 --cluster.name=production
首先要清楚,sentinel是一个独立于redis之外的进程,不对外提供key/value服务。在redis的安装目录下名称叫redis-sentinel。主要用来监控redis-server进程,进行master/slave管理,如果你的redis没有运行在master/slave模式下,不需要设置sentinel。
两个基本概念
S_DOWN:subjectively down,直接翻译的为"主观"失效,即当前sentinel实例认为某个redis服务为"不可用"状态.
O_DOWN:objectively down,直接翻译为 ...
mongodb,在刷数据的时候,遇到这个错误。
最终原因是因为用户权限不足导致。
查看运行mongodb的程序的资源,首页ulimit -a查看。查看max memory size和virtual memory ,如果不是unlimited,则将他们设置成unlimited.
设置命令如下:
ulimit -m unlimited
ulimit -v unlimited
然后重启mongo。
如果还不行,则进行修复操作:
1、停mongo,使用db.shutdownServer()
2、删锁锁文件,rm /%MONGO_DB_DATA%/mongod.lock
...
在配置文件中增加如下配置:
action.auto_create_index: false
index.mapper.dynamic: false
有两种方法,都是修改es的配置文件(%ES_HOME%/config/elasticsearch.yml):
方法一、设置cluster.routing.allocation.same_shard.host: true。
这个设置是告诉es,将同一shard的primary shard和replica shard分步在不同的主机上(官方文档说按照不同的IP或主机名称来判断是否是同一主机)。这个值,
如果你尚未接触过这两个概念,请不要继续往下读。如果您只接触过其中一种,请也不要往下读,读过您会更糊涂。如果你都接触过,也对这两个概念很模糊,请仔细阅读。
首先,这两个概念描述的是不同层面的问题。
异步重点强调的是回调。即数据准备好后,主程序会优先执行回调函数。一般是与用户之间交换的动作,比如AJAX。用户要求点击某个按钮后,不要刷新整个页面。
非阻塞,则是说,程序每次都询问(谁?当然是操作系统)数据准备好了没有。没有就走,有就处理,程序不要等待数据。一般是在处理IO时使用。比如,网络编程,使用非阻塞的方式处理客户端连接,可以高效的处理客户端的请求。
假如以系统IO调用( 可 ...
我是一名软件工程师,6年开发经验。之前主要做项目,今年进入互联网企业,意识到技术的重要性。截止到目前,主要使用语言为Java,最近一时兴起,打算读一下开源软件来开阔一下自己的视野,顺便还能提高自己的技术水平。为什么选择读redis呢?主要有以下几点:
1、redis是一个简单的工程,主要是实现键值对的操作(打算读完redis,接着读memcached)
2、redis的代码比较少(这个是之前道听途说),读起来应该比较容易。
3、redis是单线程的,不涉及比较复杂的并发操作。
所以决定以redis
刚毕业的时候,总是搞不清什么是线程安全,只记得网上说,只要方法做到可重入,就是线程安全的,晕头晕脑,一头雾水。
今年读Java并发编程,对并发有了进一步的了解,结合我们项目的实际应用,谈一下我对线程安全的认识。
一、共享变量(share varibles)引起线程安全
如果没有共享,就不会有线程安全问题。比如,你写的就是一个简单的helloword程序,不会有线程安全问题。但如果你的程序是一个web项目,并且里面有一个全局适用的缓存对象,那么就会涉及到线程安全问题。
下面是一个静态方法,根据code_id,得到code_name的方法。
public class CodeHelper ...
项目需要,代码管理工具切换到git,跟cvs切换到svn不一样,我本人开始对git是很抵制的,觉得他跟svn差不多,没有必要代替。严重依赖分支进行开发的项目,使用git管理很方便。因为git就是为分支管理而创建。另外github社区的 ...
首先简单复习一下哈希表知识(大学课本定义)。
根据设定的哈希函数f(key)和处理冲突的方法将一组关键字映像到一个有限的连续地址集(区间)上,并以关键字在地址集中的“像”作为记录在表中的存储位置,这种表便称为哈希表。
哈希函数f(key)是一个映像,使得任何关键字由此所得到的哈希函数值都落在表允许范围之内。
对不同的关键字可能得到同一哈希地址,即key!=key2,但是f(key1)=f(key2),这种现象称为冲突。一般情况下,冲突只能减少,而不能完全避免。
还不清楚?请百科普及一下吧。
通过上面的复习,我们知 ...
HashMap除了有无参的构造方法(默认会构造出一个默认为16的数组及loadFactor=0.75的HashMap)外,也可以在New HaspMap的时候指定这两个值。原构造方法声明如下:
HashMap(int initialCapacity, float loadFactor)
Constructs an empty HashMap with the specified initial capacity and load factor.
第一个参数:initialCapacity,初始化容量。
第二个参数:loadFactor,重新加载比例。即当 ...
在创建Lucene的IndexWriter,analyzer和QueryParser的时候都要指定一个version字段,这个version有何意义?为什么最新的版本总是把之前的version都打上deprecated标签?高版本的Lucene能否打开低版本的索引并且索引呢?
先看Version类本身的定义:
Use by certain classes to match version compatibility across releases of Lucene.
WARNING: When changing the version parameter that you ...
学习Lucene是为了更深入搜索,学习Lucene4是为了弄懂ES中没有解释的疑问,等看完Lucene,才发现,搜索的核心原来都是Lucene,Elasticsearch只不过是包在Lucene外面的一层皮。
Lucene是一个搜索引擎包,它并非一个像tomcat一样的产品。它衍生出了solr和elasticsearch。当然,我学习的是后者。solr是apache孵化的一个搜索引擎。
马XX说过,学习是一个概念,判断,推理的过程,现在想想,老人家说的很多话,还真是那么回事。下面就是Lucene4中的一些基础核心概念。
索引(Index)
对应一个倒排表, ...
刚刚过去的双11,真是给线下运营商好好上了一课。当今的互联网真是炙手可热,大家对互联网的热情是如此之高。相信电商之间的竞争将更加的激烈和残酷,不过,搜索,作为用户体验很重要的一点,各大电商也做的越来越好 ...
在Elasticsearch创建mapping的时候,需要制定store属性和index属性,对于刚入门es的学者,通常对lucene又不熟悉的人,通常不知道如何设置这两个值。
先来看需求:
在做搜索时,经常会需要对一个分类进行分组,比如搜索"ipad",需要在平板电脑分类下面统计有多少个商品,在电脑配件下面统计有多少个商品,这种统计数量的需求,我们通常会在document里面添加一个分类ID,然后对所有的分类做facet。那么问题出来了,如果分类ID是个整数的话,store属性应该设置true or false?这种整数是否还需要索引?
这个问题,在ES的文 ...