elasticsearch - 如何从索引(具有多种类型)的搜索中获取每种类型的前1个文档?

标签 elasticsearch indexing lucene nosql

我们在ElasticSearch中有一个名为“machines”的索引,并且类型为“auto,bike,car,flight”

我想从索引中搜索类似品牌-每种类型

如何通过Elasticsearch REST API从索引(具有多个类型)的搜索中查询每种类型的前1个文档?

最佳答案

使用top_hits aggregation尝试一下:

GET /machines/_search?search_type=count
{
  "query": {
    "match_all": {} //your query here
  }, 
  "aggs": {
    "top-types": {
      "terms": {
        "field": "_type"
      },
      "aggs": {
        "top_docs": {
          "top_hits": {
            "sort": [
              {
                "_score": {
                  "order": "desc"
                }
              }
            ],
            "size": 1
          }
        }
      }
    }
  }
}

关于elasticsearch - 如何从索引(具有多种类型)的搜索中获取每种类型的前1个文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26676190/

相关文章:

json - Kibana4 : Analyzed string field warning

elasticsearch - 从聚合结果中总结doc_count-错误“聚合不存在buckets_path”

mongodb - 为什么索引的方向在 MongoDB 中很重要?

php - 在 solr 文档中存储 n+1 个对象

elasticsearch - 如何从 elasticsearch 结果中排除大量 id?

search - 每个属性值的Elasticsearch(n)个文档

elasticsearch - 为什么 Elasticsearch 在默认设置下使用 9 GB 内存?

elasticsearch - 为什么Elasticsearch从2.4版跳到5.0版?

python - 使用模式迭代列表中的项目?

indexing - mnesia match_object 与复杂索引