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

指定在ElasticSearch中建立索引的字段

施琦
2023-03-14
问题内容

我有一个文档,其中包含许多我从未查询过的字段,因此我想关闭这些字段的索引以节省资源。我相信我需要禁用该_all字段,但是如何指定要对哪些字段建立索引呢?


问题答案:

默认情况下,所有字段也都在_all特殊字段内建立索引,该字段开箱即用地提供了所谓的catchall功能。但是,可以通过以下include_in_all选项为映射中的每个字段指定是否要将其添加到_all字段:

"person" : {
    "properties" : {
        "name" : {
            "type" : "string", "store" : "yes", "include_in_all" : false
        }
    }
}

上面的示例禁用了name字段的默认行为,该行为不会成为_all字段的一部分。

否则,如果您完全不需要特定类型的_all字段,则可以在映射中再次这样禁用它:

"person" : {
    "_all" : {"enabled" : false},
    "properties" : {
        "name" : {
            "type" : "string", "store" : "yes"
        }
    }
}

禁用它时,您的字段仍将被单独索引,但是您将没有_all提供的包罗万象的功能。然后,您将需要查询您的特定字段,而不是依赖_all特殊字段。实际上,当您查询并且不指定字段时,elasticsearch将查询_all字段,除非您覆盖要查询的默认字段。



 类似资料:
  • 问题内容: 我想指定一个分析器,命名它,并在创建索引时在映射中使用该名称。我迷路了,我的ES实例总是向我返回一条错误消息。 大致来说,这就是我想要做的: 但这似乎行不通。ES实例总是返回一个错误,例如 我尝试将字典的分支放在多个位置(在映射等内部),但无济于事。我想一个完整的示例(到目前为止还找不到)可以帮助我。可能我缺少了一些基本知识。 问题答案: “分析”位于“设置”块中,在创建索引时位于“映

  • 本文向大家介绍如何在MongoDB中为多个字段建立索引的“或”索引?,包括了如何在MongoDB中为多个字段建立索引的“或”索引?的使用技巧和注意事项,需要的朋友参考一下 要为多个字段建立索引,请使用sureIndex()作为组合。使用sureIndex(),我们可以创建索引,甚至可以传递多个字段。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出-

  • 假设我们有一个ElasticSearch实例和一个索引。我现在要在整个索引中搜索包含特定值的文档。它与在多个字段上搜索该查询相关,因此我不想指定要在其中搜索的每个字段。 到目前为止我的尝试(使用NEST)如下: 在ConnectionString上应用以下调试后,我将获得以下输出: 我该怎么做?为什么我的查询是错误的?

  • 问题内容: 我在一个网站中使用,其中我从中索引了数据。 这很好。但目前,我必须在字段中搜索的完全匹配项。目前,如果我搜索其条目,也会给出的结果。我找到了此链接,并且看到了需要在数据上添加的elasticsearch文档。我的问题是如何在当前情况下在数据上添加映射?还是有更好的方法呢? 问题答案: 删除现有索引 删除现有的河流配置索引 创建映射到索引 完成这些步骤后,将river插件配置同步mong

  • 我在Elasticsearch批量更新查询中指定路由时遇到问题。我有一个需要路由的映射: 我可以使用查询参数routing fine插入单个文档: 但是,当我批量更新时,我不确定如何指定路由字段。文件上说 另外,虽然显然不受支持(这里的答案是使用“批量时每个单独文档的路由字段”,就像我在上面尝试过的那样,但我在老版本中尝试了其他选项以防万一) 也会失败: {“type”:“illegal_argu