分布式搜索引擎ElasticSearch(插入数据及java api 二)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式搜索引擎ElasticSearch(插入数据及java api 二)相关的知识,希望对你有一定的参考价值。

通过Aggregation来分组查询:

  

SearchResponse response = client.prepareSearch(INDEX_DOUBAN).setTypes(TYPE_DOUBAN)
  .addAggregation(
      AggregationBuilders.terms("by_"+tag).field(tag).size(1000)
              )

.execute().actionGet();

Terms terms = response.getAggregations().get("by_"+tag);
for(Bucket b:terms.getBuckets()){
// Sum sum = b.getAggregations().get("sum");
list.add((String) b.getKey());
//System.out.println("filedname:"+b.getKey()+" docCount:"+b.getDocCount());
}

这里要注意的是:返回数量不是和之前一样setSize(),而是要设置AggregationBuilders的size才行;其次:对于非数字和英文的字段,这样的组合查询默认会进行分词处理,所以要用mapping来设置字段的分词与否,这部分后面详细叙述。

以上是关于分布式搜索引擎ElasticSearch(插入数据及java api 二)的主要内容,如果未能解决你的问题,请参考以下文章

分布式搜索引擎Elasticsearch的查询与过滤

四十六 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)scrapy写入数据到elasticsearch中

ElasticSearch大数据分布式弹性搜索引擎使用

ElasticSearch大数据分布式弹性搜索引擎使用

Elasticsearch

Elasticsearch 分布式搜索引擎 -- 数据同步:数据同步思路分析 实现elasticsearch与数据库数据同步