
elasticsearch
文章平均质量分 64
july_2
这个作者很懒,什么都没留下…
展开
-
elasticsearch资料
elasticsearch中文翻译网站:http://www.elasticsearch.cn/原创 2014-04-25 09:46:50 · 2180 阅读 · 0 评论 -
elasticsearch RangeFilter实例
需求:我们搜索文章范围在近一年之内。这时候我们就用到elasticsearch RangeFilter了具体例子如下:long current=System.currentTimeMillis()/1000l; Calendar ca = Calendar.getInstance();//得到一个Calendar的实例 ca.setTime(new Date()转载 2015-03-16 16:40:45 · 2856 阅读 · 0 评论 -
elasticsearch suggest 的几种使用-completion 的基本 使用
在lucene里面,suggest 的支持非常完善,可以随心所欲的定制; 但是在es中使用起来就没有那么方便了。 es给suggest 分类4类:term ;phrase; completion; context; 目前最新版本是es1.2.1 这一块也还在不断完善中; term suggester 是根据某词元在制定的字段中出现的频次来做出提示; phrase suggester 是给ter转载 2015-03-11 18:01:40 · 9093 阅读 · 3 评论 -
elasticsearch FuzzyLikeThisQueryBuilder实例
需求:在搜索中经常需要模糊搜索,比如我们搜“国”,希望能得到“中国”,“英国”等等。这时候就可以用FuzzyLikeThisQueryBuilder实现。java 实例代码如下:FuzzyLikeThisQueryBuilder fuzzy=new FuzzyLikeThisQueryBuilder("fname");//fname 为搜索的fieldfuzzy.analy转载 2015-03-16 16:40:45 · 2476 阅读 · 0 评论 -
elasticsearch moreLikeThis查询应用
elasticsearch MoreLikeThisQueryBuilder实例分布式搜索elasticsearch java client:使用More like this实现基于内容的推荐elasticsearch MoreLikeThisQueryBuilder查询主要实现对一句话相似文章的查询。在推荐系统中,通常要用到与一篇文章相似度高的一组文章。在这里我们要用到转载 2015-03-13 15:51:59 · 5611 阅读 · 0 评论 -
elasticsearch suggest
在lucene里面,suggest 的支持非常完善,可以随心所欲的定制; 但是在es中使用起来就没有那么方便了。 es给suggest 分类4类:term ;phrase; completion; context; 目前最新版本是es1.2.1 这一块也还在不断完善中; term suggester 是根据某词元在制定的字段中出现的频次来做出提示; phrase suggester 是给ter转载 2015-01-15 17:38:25 · 225 阅读 · 0 评论 -
elasticsearch手动控制分片分布
elasticsearch可以通过reroute api来手动进行索引分片的分配。不过要想完全手动,必须先把cluster.routing.allocation.disable_allocation参数设置为true,禁止es进行自动索引分片分配,否则你从一节点把分片移到另外一个节点,那么另外一个节点的一个分片又会移到那个节点。 一共有三种操作,分别为:移动(move),取转载 2014-07-31 17:11:35 · 6119 阅读 · 0 评论 -
elasticsearch更改node id生成方法
集群中节点的id是由discovery定义的,默认es有两种实现方式,一种是org.elasticsearch.discovery.local.LocalDiscovery表示把es的节点启动在同一个jvm的环境下,这样就可以通过AtomicLong来进行数字递增的id生成。另一种是org.elasticsearch.discovery.zen.ZenDiscovery转载 2014-07-31 17:12:14 · 5793 阅读 · 0 评论 -
Elasticsearch——Templates 模板
Elasticsearch可以预先定义索引模板,当创建新索引时,可以自动匹配模板。模板包括settings和mappings,以及一个匹配索引的正则。1. 使用curl方式操作templates详细查阅:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-templates.ht转载 2014-05-29 17:32:32 · 26680 阅读 · 1 评论 -
elasticsearch-suggest-plugin使用
接着上一篇文章elasticsearch SuggestionBuilder应用实例,我们使用elasticsearch本生的SuggestionBuilder,效果并不好。我们来使用https://github.com/spinscale/elasticsearch-suggest-plugin插件。1.先从https://github.com/spinscale/elasticsear转载 2015-03-17 10:17:06 · 3695 阅读 · 0 评论 -
elasticsearch 自定义similarity 插件开发
在搜索开发中,我们要修改打分机制,就需要自定义similarity。现在来简单说一下elasticsearch下的自定义similarity 插件开发。网上的https://github.com/tlrx/elasticsearch-custom-similarity-provider仅仅支持0.20.0.Beta1-SNAPSHOT版本,现在我们用的版本是elasticsearch转载 2015-03-17 10:13:32 · 4515 阅读 · 0 评论 -
ElasticSearch 安装配置
下载解压,执行bin下面的elasticsearch.bat(linux下./elasticsearch)即可,在linux下执行elasticsearch默认会以后台的方式执行,如果想看console输出的日志信息,加上参数 -f 即可(./elasticsearch -f),JAVA环境6以上,不要忘了。一般来说,我会使用elasticsearch的一个searchwrapper来让e转载 2015-03-17 15:11:50 · 1213 阅读 · 0 评论 -
Elasticsearch:检索篇
ES检索篇主要是对索引中的数据进行查询的一个过程:1.IndexReader打开索引文件,读取并打开指向索引文件的流。2.用户输入查询语句3.将查询语句转换为查询对象Query对象树4.构造Weight对象树,用于计算词的权重Term Weight,也即计算打分公式中与仅与搜索语句相关与文档无关的部分(红色部分)。5.构造Scorer对象树,用于计算打分(T转载 2015-03-18 15:37:47 · 1678 阅读 · 0 评论 -
Elasticsearch:Mapping篇
Es Mapping篇主要是讲解Mapping的一些相关配置与需要注意的地方,说到Mapping大家可能觉得有些不解,其实我大体上可以将Es 理解为一个数据管理平台,那么index 当然就是库了,type可以理解为表,mapping可以理解为表的结构和相关设置的信息(当然mapping有更大范围的意思)。Mapping的作用域也是从cluster、node、index、type。c转载 2015-03-18 15:29:59 · 2619 阅读 · 0 评论 -
elasticsearch获取java client实例
一般情况下,我们可以用如下方法获取一个java client。public Client getTransportClient(){ // 设置client.transport.sniff为true来使客户端去嗅探整个集群的状态,把集群中其它机器的ip地址加到客户端中, // 这样做的好处是一般你不用手动设置集群里所有集群的ip到连接客户端,它会自动帮你转载 2015-03-13 16:22:07 · 23158 阅读 · 7 评论 -
mvel2.0语法指南
虽然mvel吸收了大量的java语法,但作为一个表达式语言,还是有着很多重要的不同之处,以达到更高的效率,比如:mvel像正则表达式一样,有直接支持集合、数组和字符串匹配的操作符。 除了表达式语言外,mvel还提供了用来配置和构造字符串的模板语言。mvel2.x表达式包含以下部分的内容:属性表达式,布尔表达式,方法调用,变量赋值,函数定义。一、基本语法转载 2015-03-13 18:07:47 · 1254 阅读 · 0 评论 -
mvel2.0语法指南
虽然mvel吸收了大量的java语法,但作为一个表达式语言,还是有着很多重要的不同之处,以达到更高的效率,比如:mvel像正则表达式一样,有直接支持集合、数组和字符串匹配的操作符。 除了表达式语言外,mvel还提供了用来配置和构造字符串的模板语言。mvel2.x表达式包含以下部分的内容:属性表达式,布尔表达式,方法调用,变量赋值,函数定义。一、基本语法MVEL 是一转载 2015-03-13 18:02:06 · 3097 阅读 · 0 评论 -
elasticsearch customScoreQuery 实例
我们来学习一下elasticsearch customScoreQuery 的使用。customScoreQuery 可以自定义score,从而来影响排序结果。建立mappingpublic static XContentBuilder createMapping(String indexName){XContentBuilder mapping = null;转载 2015-03-13 17:59:54 · 2969 阅读 · 0 评论 -
elasticsearch MultiSearch实例
在实际开发中,我们需要对多个索引搜索,然后得出一个综合结果。例如:“综合搜索”,得出新闻和话题的搜索结果。实例代码如下:Client esClient = ESServiceSingleton2.getTransportClient(); SearchRequestBuilder tagSearch = esClient .prepareSearc转载 2015-03-13 16:41:51 · 5272 阅读 · 0 评论 -
索引模块-同义词词元过滤器(Index Modules-Synonym Token Filter)
同义词词元过滤器这个 同义词 词元过滤器能够轻松地处理同义词在分析过程。 同义词使用配置文件进行配置。 这里是一个例子:{ "index" : { "analysis" : { "analyzer" : { "synonym" : { "tokenizer" :转载 2015-03-11 17:34:01 · 1471 阅读 · 0 评论 -
elasticsearch安装参数配置注意事项
在elasticsearch安装时,有几个重要的参数配置需要我们注意:1.文件描述在http://www.elasticsearch.org/guide/reference/setup/installation/这样描述:Make sure to increase the number of open files descriptors on the machine (or for转载 2015-03-17 17:05:16 · 2567 阅读 · 0 评论 -
Elasticsearch:配置篇
在生产环境中elasticsearch.yml配置项主要如下:cluster.name: elasticsearch集群名称node.name: “35″节点名称node.tag: “tag21″节点标签node.data: true节点是否存储数据index.number_of_shards: 10索引分片数in转载 2015-03-17 15:18:42 · 2252 阅读 · 0 评论 -
分布式搜索elasticsearch配置文件详解
elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是使用log4j来记录日志的,所以logging.yml里的设置按普通log4j配置文件来设置就行了。下面主要讲解下elasticsearch.yml这个文件中可配置的东西。cluster.name: elas转载 2014-04-23 15:20:54 · 5387 阅读 · 0 评论 -
生产环境使用elasticsearch遇到的一些问题以及解决方法(不断更新)
1.由gc引起节点脱离集群 因为gc时会使jvm停止工作,如果某个节点gc时间过长,master ping3次(zen discovery默认ping失败重试3次)不通后就会把该节点剔除出集群,从而导致索引进行重新分配。解决方法:(1)优化gc,减少gc时间。(2)调大zen discovery的重试次数(es参数:ping_retries)和超时时间(es参数:p原创 2014-04-29 17:18:35 · 26101 阅读 · 4 评论 -
ElasticSearch的各种服务的URL
索引相关URL说明/index/_search不解释/_aliases获取或操作索引的别名/index/ /index/type/创建或操作类型/index/_mapping创建或操作mapping/index/_settings创建或操作设置(number_of_shards是不可原创 2014-05-14 15:50:54 · 22351 阅读 · 0 评论 -
elasticsearch java API ------索引数据
TransportClient client = null;public ESClientTest() {Settings settings = ImmutableSettings.settingsBuilder().put("client.transport.sniff", true).build();client = new TransportClient(settin原创 2014-04-24 10:51:42 · 644 阅读 · 0 评论 -
elasticsearch java API------批量添加索引
public void bulkupdate(){ BulkRequestBuilder bulkRequest = client.prepareBulk(); try {bulkRequest.add(client.prepareIndex("productindex", "productindex", "2") .setSource(XContentFa原创 2014-04-24 11:20:18 · 814 阅读 · 0 评论 -
Elasticsearch源码分析之二------索引过程源码概要分析
lasticsearch的索引逻辑简单分析,这里只是理清主要的脉络,一些细节方面以后的文章或会阐述。假如通过java api来调用es的索引接口,先是构造成一个json串(es里表示为XContent,是对要处理的内容进行抽象),在IndexRequest里面指定要索引文档到那个索引库(index)、其类型(type)还有文档的id,如果没有指定文档的id,es会通过UUID工转载 2014-04-30 11:17:56 · 8204 阅读 · 0 评论 -
Elasticsearch源码分析之一——使用Guice进行依赖注入与模块化系统
elasticsearch使用google开源的依赖注入框架guice,这个项目号称比spring快100倍,具体性能没有测试过,不过由于其代码比较简洁,比spring快很有可能,是不是快那么多就不知道了。先介绍下guice的基本使用方法。elasticsearch是直接把guice的源码放到自己的包内(es把很多开源项目的代码都直接集成到自己项目中,省得依赖一堆的jar包,也使es的jar包转载 2014-04-29 16:55:40 · 1832 阅读 · 0 评论 -
Elasticsearch Java虚拟机配置详解
引言:今天,事情终于发生了。Java6(Mustang),是2006年早些时候出来的,至今仍然应用在众多生产环境中,现在终于走到了尽头。已经没有什么理由阻止迁移到Java7(Dolphin)上了。这也促使我想写一篇关于在ElasticSearch上配置Java6和7的细微差异的博文。Elasticsearch对Java虚拟机进行了预先的配置。通常情况下,因为这些配置的选择还转载 2014-04-30 11:20:17 · 4362 阅读 · 0 评论 -
elasticsearch高级配置之线程池设置
一个Elasticsearch节点会有多个线程池,但重要的是下面四个:索引(index):主要是索引数据和删除数据操作(默认是cached类型)搜索(search):主要是获取,统计和搜索操作(默认是cached类型)批量操作(bulk):主要是对索引的批量操作(默认是cached类型)更新(refresh):主要是更新操作(默认是cached类型)可以通过给设置一个参转载 2014-04-29 16:50:26 · 6343 阅读 · 0 评论 -
elasticsearch高级配置之分片分布
分片分布是把索引分片分布到节点的过程。这个操作会在初次启动集群,副本分配,负载均衡,或增加删除节点时进行。下面是一些与分片分布相关的设置:cluster.routing.allocation.allow_rebalance设置根据集群中机器的状态来重新分配分片,可以设置为always, indices_primaries_active和indices_all_active,默认是设转载 2014-04-29 14:17:21 · 10165 阅读 · 0 评论 -
elasticsearch java API ------使用More like this实现基于内容的推荐
基于内容的推荐通常是给定一篇文档信息,然后给用户推荐与该文档相识的文档。Lucene的api中有实现查询文章相似度的接口,叫MoreLikeThis。Elasticsearch封装了该接口,通过Elasticsearch的More like this查询接口,我们可以非常方便的实现基于内容的推荐。先看一个查询请求的json例子:[plain] view plainc转载 2014-04-29 16:47:27 · 8046 阅读 · 4 评论 -
一些国外优秀的elasticsearch使用案例
Github“Github使用Elasticsearch搜索20TB的数据,包括13亿的文件和1300亿行的代码”这个不用介绍了吧,码农们都懂的,Github在2013年1月升级了他们的代码搜索,由solr转为elasticsearch,目前集群规模为26个索引存储节点和8个客户端节点(负责处理搜索请求),详情请看官方博客https://github.com/blog/1381转载 2014-04-30 11:36:56 · 1255 阅读 · 0 评论 -
elasticsearch------索引修复
在使用基于lucene的各类搜索引擎(如:elasticsearch、solr)时,有可能出现类似如下的错误:Caused by: java.io.EOFException: read past EOF: NIOFSIndexInput(path="/usr/local/sas/escluster/data/cluster/nodes/0/indices/index/5/index/_59ct转载 2014-04-30 11:01:23 · 6275 阅读 · 0 评论 -
elasticsearch java api——客户端 org.elasticsearch.client
注:该文及后续的几篇文章为概述,之后会将实例补充到文章中。在elasticsearch源代码中,进入到org.elasticsearch.client,你会发现下图所示的类:我们从最外层开始。1 org.elasticsearch.client.AdminClient接口AdminClient下有两个方法:1) cluster(),产生一转载 2014-05-06 14:40:05 · 17634 阅读 · 3 评论 -
Elasticsearch java api——节点实例化
注:后面提到的所有代码都是以java为例。要连接到集群,首先要告诉集群:你是谁,你有什么特征。在es中体现为实例化节点。es通过org.elasticsearch.node.NodeBuilder的build()或者node()方法实例化节点,build()创建节点而不启动,而node()方法等价于build().start(),即创建并启动。首先实例化NodeBuilde转载 2014-05-06 14:32:32 · 5624 阅读 · 0 评论 -
elasticsearch java api优化
client.admin().indices().prepareOptimize("product").setMaxNumSegments(1).execute().actionGet();client.admin().indices().prepareOptimize("product").setMaxNumSegments(1).execute().actionGet();原创 2014-05-05 17:19:46 · 2279 阅读 · 1 评论 -
Elasticsearch-索引优化篇2
内存和打开的文件数如果你的elasticsearch运行在专用服务器上,经验值是分配一半内存给elasticsearch。另一半用于系统缓存,这东西也很重要的。你可以通过修改ES_HEAP_SIZE环境变量来改变这个设定。在启动elasticsearch之前把这个变量改到你的预期值。另一个选择上球该elasticsearch的ES_JAVA_OPTS变量,这个变量时在启动脚本(el转载 2014-05-14 16:03:06 · 11928 阅读 · 0 评论 -
Elasticsearch-索引优化篇1
ES索引优化篇主要从两个方面解决问题,一是索引数据过程;二是检索过程。(本文主要介绍)索引数据过程我在上面几篇文章中有提到怎么创建索引和导入数据,但是大家可能会遇到索引数据比较慢的过程。其实明白索引的原理就可以有针对性的进行优化。ES索引的过程到相对Lucene的索引过程多了分布式数据的扩展,而这ES主要是用tranlog进行各节点之间的数据平衡。所以从上我可以通过索引的setting转载 2014-05-14 15:58:03 · 10067 阅读 · 2 评论