elasticsearch中的field data(正排索引)

JerryHouse | elasticsearch, 搜索 | 2016-01-04
之前的文章有讲到elasticsearch filter和query的区别,其中filter就要用到field data这种数据结构。Elasticsearch cluster中的内存多半都被消耗在了field data(也就是我们常说的正排索引)上,field data主要用于: 按照字段排序(sort) 按照字段进行聚合(Aggregations) 过滤器,例如地理位置过滤 script排序中使用到某些字段 倒排索引的结构如下,这... [阅读全文]
ė 6elasticsearch中的field data(正排索引)已关闭评论 0, , ,

Elasticsearch自定排序插件实现

JerryHouse | java, 搜索 | 2015-10-15
前一篇文章讲到了ES中使用Native Script实现自定义排序的一种方式,那种方式需要修改配置文件和设置jar包的位置,部署起来比较麻烦,本文将介绍另一方式–以插件的形式实现Elasticsearch自定义排序。 整个插件项目的结构为 project --src ----main --------assemblies ------------plugin.xml --------java ------------com.dcharm.plugin... [阅读全文]
ė 6Elasticsearch自定排序插件实现已关闭评论 0, ,

ElasticSearch自定义排序

JerryHouse | java, 搜索 | 2015-10-13
本文讨论ES的自定义排序的两种实现形式:基于groovy脚本的自定义排序和基于native script的自定义排序。 1. 基于Groovy脚本的自定义排序 ES的排序脚本必须放在config/scripts下面,ES能够自动发现这些脚本并提供对外使用, 例如编写脚本calculate-score.groovy log(_score * 2) + my_modifier 脚本中my_modifier是搜索请求中的参数,_score是ES计算得... [阅读全文]
ė 6ElasticSearch自定义排序已关闭评论 0, , ,

Java中的BitSet

JerryHouse | java, 搜索, 数据结构 | 2015-08-20
最近看到ES在缓存filter的结果时用到了BitSet的数据结构,用一个bit来标识文档是否满足这个filter,利用bitset的or,and,andnot可以迅速地找到符合多个filter的文档的集合。顺带就看了看java中的BitSet的实现。 1. BitSet使用的例子 BitSet bits1 = new BitSet(16); BitSet bits2 = new BitSet(16); bits1.set(3); ... [阅读全文]
ė 6Java中的BitSet已关闭评论 0, ,

ElasticSearch中的Filter和Query

JerryHouse | 搜索 | 2015-08-19
ElasticSearch中可以通过filter或者query来获取满足特定条件的文档,但是它们的实现和目的有一些不同之处。Filter作用于有确定值的字段,判断这些字段是否满足特定的条件。例如: 1.CreateDate字段的值是否在2013年到2014年之间? 2.作者字段的值是否包含“不二”? 3.lat_lon字段的值是否在给定点的10km范围之内? Query和filter类似,它也... [阅读全文]
ė 6ElasticSearch中的Filter和Query已关闭评论 0, ,
Ɣ回顶部