当前位置: 首页 > 知识库问答 >
问题:

在“fields”中指定时,ElasticSearch忽略名为“tags”的字段

周洋
2023-03-14
$ curl -XPOST 'http://localhost:9200/products/_search?pretty' -d '{  "query": {"match_all": {} }, "fields": ["tags", "id", "slug"], "size": 2}'
{
  "took" : 4,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 321826,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "products",
      "_type" : "products",
      "_id" : "39969794",
      "_score" : 1.0,
      "fields" : {
        "id" : [ "39969794" ],
        "slug" : [ "slug-39969794" ]
      }
    }, {
      "_index" : "products",
      "_type" : "products",
      "_id" : "21296413",
      "_score" : 1.0,
      "fields" : {
        "id" : [ "21296413" ],
        "slug" : [ "slug-21296413" ]
      }
    } ]
  }
}

我使用的是ES Version1.1.2(Lucene4.7)。

共有1个答案

范云
2023-03-14

标记不是ES保留字。所以那不是你的问题。

您的标记是原子类型(数字、字符串或布尔值)的数组吗?还是一个对象数组?

字段仅适用于叶节点。所以“fields”:[“tags”]应该可以很好地处理字符串数组,但对于tag对象数组则会失败。

 类似资料:
  • 我有一个搜索索引,包含一个名为的字段,它是一个数组。当我没有向查询中添加节时,标签值会出现在结果中,但当我添加了节时,它会被完全忽略,并且不会出现在结果中,如下所示。 这是否有原因或已知的问题?是ElasticSearch的某种保留词吗? 我使用的是ES版本1.1.2(Lucene 4.7)。

  • 问题内容: 我正在开发一个使用Spring-boot,关系数据库和Elasticsearch的应用程序。 我在代码的2个不同位置使用JSON序列化: 在REST API的响应中。 当代码与Elasticsearch交互时。 我在Elasticsearch中需要一些属性,但我想向应用程序用户隐藏(例如,来自关系数据库的内部ID)。 这是一个实体的例子: 问题 :当对象持久化在Elasticsearc

  • 问题内容: 我有一个user_batch集合。它包含以下文档: 在查找查询中,我只想投影 name 和 batchSize 。但是,当我从nodejs执行find查询时,我会在查询结果中获取整个文档。查询: 如果我只是通过 {name:1}, 那么它将投影_id和名称。但是,如果我通过 batchSize ,它将返回整个文档。 注意:在Mongo Shell中执行此查询时,我没有遇到此问题 问题答

  • 我想使用下面的连接器配置将多个表数据发布到同一个Kafka主题,但我看到了下面的异常 例外 原因:io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException:正在注册的架构与早期架构不兼容;错误代码:409 连接器似乎忽略了主题策略属性集,并继续使用旧的${主题}-key和${主题}-value主题。 连

  • 问题内容: 我有下表 我需要将所有注释收集到单个字符串中 如果不订购,则按预期方式工作,最后返回所有您的注释。但是在运行以下代码后,添加了 ORDER BY 子句: 仅返回最后一条评论。有谁知道为什么ORDER BY导致串联的奇怪结果? PS:如果使用 FOR XML 子句代替串联,则可以很好地工作。是否有一种方法可以创建SQL Server函数,以将子查询中的多行“填充”到单个定界字段中? 问题

  • 问题内容: 我有一个文档,其中包含许多我从未查询过的字段,因此我想关闭这些字段的索引以节省资源。我相信我需要禁用该字段,但是如何指定要对哪些字段建立索引呢? 问题答案: 默认情况下,所有字段也都在_all特殊字段内建立索引,该字段开箱即用地提供了所谓的catchall功能。但是,可以通过以下选项为映射中的每个字段指定是否要将其添加到_all字段: 上面的示例禁用了name字段的默认行为,该行为不会