我有一个搜索索引products
,包含一个名为tags
的字段,它是一个数组。当我没有向查询中添加fields
节时,标签值会出现在结果中,但当我添加了fields
节时,它会被完全忽略,并且不会出现在结果中,如下所示。
$ 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" ] } } ] } }
这是否有原因或已知的问题?tags
是ElasticSearch的某种保留词吗?
我使用的是ES版本1.1.2(Lucene 4.7)。
标记
不是ES保留字。所以那不是你的问题。
您的标记是原子类型(数字、字符串或布尔)的数组吗?还是一个对象数组?
字段
仅适用于叶节点。因此,“fields”:[“tags”]
在字符串数组中可以正常工作,但在tag
对象数组中就会失败。
我使用的是ES Version1.1.2(Lucene4.7)。
问题内容: 我正在开发一个使用Spring-boot,关系数据库和Elasticsearch的应用程序。 我在代码的2个不同位置使用JSON序列化: 在REST API的响应中。 当代码与Elasticsearch交互时。 我在Elasticsearch中需要一些属性,但我想向应用程序用户隐藏(例如,来自关系数据库的内部ID)。 这是一个实体的例子: 问题 :当对象持久化在Elasticsearc
问题内容: 我有一个user_batch集合。它包含以下文档: 在查找查询中,我只想投影 name 和 batchSize 。但是,当我从nodejs执行find查询时,我会在查询结果中获取整个文档。查询: 如果我只是通过 {name:1}, 那么它将投影_id和名称。但是,如果我通过 batchSize ,它将返回整个文档。 注意:在Mongo Shell中执行此查询时,我没有遇到此问题 问题答
问题内容: 我有下表 我需要将所有注释收集到单个字符串中 如果不订购,则按预期方式工作,最后返回所有您的注释。但是在运行以下代码后,添加了 ORDER BY 子句: 仅返回最后一条评论。有谁知道为什么ORDER BY导致串联的奇怪结果? PS:如果使用 FOR XML 子句代替串联,则可以很好地工作。是否有一种方法可以创建SQL Server函数,以将子查询中的多行“填充”到单个定界字段中? 问题
我想使用下面的连接器配置将多个表数据发布到同一个Kafka主题,但我看到了下面的异常 例外 原因:io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException:正在注册的架构与早期架构不兼容;错误代码:409 连接器似乎忽略了主题策略属性集,并继续使用旧的${主题}-key和${主题}-value主题。 连
问题内容: 我有一个文档,其中包含许多我从未查询过的字段,因此我想关闭这些字段的索引以节省资源。我相信我需要禁用该字段,但是如何指定要对哪些字段建立索引呢? 问题答案: 默认情况下,所有字段也都在_all特殊字段内建立索引,该字段开箱即用地提供了所谓的catchall功能。但是,可以通过以下选项为映射中的每个字段指定是否要将其添加到_all字段: 上面的示例禁用了name字段的默认行为,该行为不会