当前位置: 首页 > 面试题库 >

弹性搜索-从json响应中排除索引和类型

夏侯承恩
2023-03-14
问题内容

当我对像这样的索引执行查询时:

{
   "_source":["bar"] , "size":100,
   "query": {
       "match_all": {}
   },
   "filter": {
       "type" : {
           "value" : "foo"
        }
    }
}

响应包括索引,类型等。但是我已经知道了索引和类型,因为我指定了它。此信息只会使json数据的大小膨胀。有没有办法从响应中排除这些?

这是我得到的:

{
"took": 31,
"timed_out": false,
"_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
    },
"hits": {
    "total": 364024,
    "max_score": 1,
    "hits": [
          {
        "_index": "foo_bar",
        "_type": "foo",
        "_id": "asdjj123123",
        "_score": 1,
        "_source": {
          "bar": "blablablabla"
    }
  }
,...

我想要的是这样的,所以没有 类型,分数,索引 的响应:

{
"took": 31,
"timed_out": false,
"_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
    },
"hits": {
    "total": 364024,
    "max_score": 1,
    "hits": [
          {
        "_id": "asdjj123123",
        "_source": {
          "bar": "blablablabla"
    }
  }
,...

问题答案:

是的,从ES
1.6开始,您可以使用响应过滤,并且filter_path在查询中使用参数仅枚举响应中所需的内容:

curl -XGET 'localhost:9200/foo_bar/foo/_search?pretty&filter_path=hits.total,hits.max_score,hits.hits._id,hits.hits._source'


 类似资料:
  • 问题内容: 当我对像这样的索引执行查询时: 响应包括索引,类型等。但是我已经知道了索引和类型,因为我指定了它。此信息只会使json数据的大小膨胀。有没有办法从响应中排除这些? 这是我得到的: 我想要的是这样的,所以没有 类型,分数,索引 的响应: 问题答案: 是的,从ES 1.6开始,您可以使用响应过滤,并且在查询中使用参数仅枚举响应中所需的内容:

  • 假设我有三个指数:城市、博物馆和景点。 现在我正在查询一个术语的所有索引(),例如“维也纳” 作为结果,我得到: 维也纳:维也纳艺术博物馆 有没有办法优先考虑指数,这样我就可以得到第一个城市,而不是景点,最后是博物馆,就像这样: 维也纳 维也纳的Riesenrad 维也纳:维也纳艺术博物馆 维也纳:维也纳历史博物馆

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 问题内容: 我已经创建了下面的对象,该对象将被映射到ElasticSearch类型。我想从索引中排除该属性: 问题答案: 您应该能够设置属性的值,如下所示:

  • 我刚加入弹性搜索公司。而不知道如何在JSON请求中对索引和an类型发出正确的请求?(所以我不想像localhost:9200/myindex/mytype/_search那样在URL中使用索引和类型,而是向localhost:9200/_search发出JSON请求) 我试过这样的东西。但我得到的结果是'AAA'索引而不是'BBB'索引。如何只从bbb索引得到结果或者根本没有结果?

  • ElasticSearch索引会随机变空,但大多数情况下,它发生在部署用Rails构建的应用程序之后。 以下是有关ElastiSearch的一些信息: curl-xget“http://localhost:9200/_nodes?pretty” curl-xget“http://localhost:9200/_cluster/health?pretty” curl“localhost:9200/_