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

ElasticSearch 6,带有动态索引映射的copy_to

史淳
2023-03-14
问题内容

也许我缺少一些简单的东西,但仍然无法弄清楚以下内容:

从ES
6.x开始,该_all字段已弃用,建议使用copy_to说明(https://www.elastic.co/guide/en/elasticsearch/reference/current/copy-
to.html
)。

但是,给我的印象是,您需要显式指定要复制到自定义_all字段的字段。但是,如果我使用动态映射,则我不事先知道字段,因此不能使用copy_to

我可以通过什么方式告诉ES将所有遇到的字段复制到自定义_all字段,以便可以在所有字段中进行搜索?

提前致谢!


问题答案:

您可以使用动态模板。基本上创建一个索引,添加自定义catch_all字段,然后为所有字符串字段指定该特定属性。(以前没有做过,但是我相信这是现在的唯一方法。因为catch_all当您放置动态模板时该字段已经存在,所以它不会与catch_all-
匹配,这意味着catch_all不会复制到自身,而是对其进行检查自己确定)。

PUT my_index
{
  "mappings": {
    "_doc": {
      "dynamic_templates": [
        {
          "strings": {
            "match_mapping_type": "string",
            "mapping": {
              "type": "text",
              "copy_to": "catch_all"
            }
          }
        }
      ]
    }
  }
}


 类似资料:
  • 问题内容: 我的数据结构非常通用。几乎所有类型的数据都适合我的数据结构。 另一个文档可能是这样的: 该数据可以更改,并且字段可以具有任何类型和名称。如何动态创建模板映射,以便通过数据中“类型”的值来设置映射的“类型”?例如,值:34.50,类型:在同一时间浮动相同数据“值”:“哈利·波特”,类型:字符串 我已经知道ES中已经做到了这一点,但是我无法做出真正使用文档中指定的“ type”值来实际为该

  • 我遵循Microsoft的指导,通过Azure ADB2C启用Dynamics Portal访问。基础设施已经启动并运行良好。我使用的是"登录"政策。但是,我在声明映射功能上遇到了麻烦。 我已经根据下面链接的文档中的说明配置了以下站点设置。 身份验证/OpenIdConnect/B2C/RegistrationClaimsMapping身份验证/OpenIdConnect/B2C/LoginCla

  • 问题所在 我是elasticsearch的新手,我想了解动态映射和重新索引文档之间的关系。 根据我的实验,当动态映射打开时,文档的重新索引是自动完成的。这意味着如果向文档中添加新字段,它将自动被索引。 TEST1-带映射的索引 TEST2-没有映射的索引

  • 我在所有日志中都有一个字段“location”,其中包含“lat”和“lon”字段。弹性体上的测井指数不同。其中一些转到“logstash YYY-MM-dd”,另一些转到“异常YYYY-MM-dd”,还有许多其他。但我不能让它们都将位置字段映射为geo_point。我知道默认映射和动态映射,但我无法使其工作。我不了解文档,也没有在网上找到明确的例子。我想要的是,elastic管理来自任何日志的所

  • 我正在尝试禁用弹性搜索索引的动态映射器。下面是我通过Kibana控制台进行测试的一系列查询。 我想添加“index.mapper.dynamic”应该会在索引级别禁用它,对吧? 但是最终的GET返回这个文档,注意是我添加到posted文档中的一个字段,只是为了测试--它不应该在结果中。我还检查了映射,它被动态添加到映射中。 我的创建索引查询有什么问题?? 搜索查询

  • 我对弹性搜索一无所知。所以,如果这是一个愚蠢的问题,请原谅我,我的问题可能已经在其他地方得到了回答,但我找不到。我想使用弹性搜索作为我的网络中PDF和docx的搜索引擎。我使用fscrawler将PDF文件吸收到弹性搜索中。因为我要摄取的文档是几种语言的,所以我想使用n-graming进行词干分析。为此,我想像这样更新我的映射 现在我收到了这个错误信息 {“error”:{“root_cause”