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

在ElasticSearch 7+中,如何搜索所有文本字段?

毛胜
2023-03-14
问题内容

我想在我存储在Elasticsearch 7.3中的文档中搜索单词

我想要在以前版本的Elasticsearch上工作的示例是:

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "_all": "oliver"
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  },
  "from": 0,
  "size": 10,
  "sort": [],
  "aggs": {}
}

但是此查询不适用于Elasticsearch 7+,因为_all已删除。现在该_all字段消失了,我该如何编写查询以完成相同的任务?

注意:我已经阅读了copy_to将所有字段复制到自定义字段中的建议,但是这要求显式地写出每个字段以包括在all_fields字段中。由于我有很多小字段,因此我试图避免这种情况,而是复制能够查询_all的行为。


问题答案:

ES文档中提到了它。

_all可能不再为在6.0+中创建的索引启用,请使用自定义字段和映射copy_to参数

因此,您需要做的是创建自己的自定义_all字段,您可以将其命名为all_fieldsetc,然后使用copy_to复制自己的所有字段值all_fields,现在,由于此自定义字段具有所有字段值,因此您可以使用它而不是_all字段。



 类似资料:
  • 有没有一种方法可以使用VS代码在一个目录中的所有文件中搜索文本?

  • 问题内容: 我想检查字符串是否在文本文件中。如果是,请执行X。否则,请执行Y。但是,True由于某些原因,此代码始终返回。谁能看到错在哪里? 问题答案: 你一直得到的原因已经给出,因此我只提供另一个建议: 如果你的文件不是太大,则可以将其读取为字符串,然后使用它(比读取和检查每行更容易,并且通常更快): 另一个技巧:通过使用创建使用基础文件的“字符串状”对象(而不是读取内存中的整个文件),可以减轻

  • 我还没有为索引创建任何显式设置。谢了。

  • 问题内容: 我有一个包含许多列的巨大表,并且我知道该列有时带有一些特定的值’MyValue’。如何在一个包含“ MyValue”的特定表中选择所有行,而不管在哪一列中。 我在这里找到相关主题: 如何在SQLServer数据库的任何位置找到值? 但是我的查询需要一个较小的大炮。我知道表名,就是“ MyTable”。我不需要搜索整个数据库。 问题答案: 要在一个简单的语句中不使用特殊过程的情况下执行此

  • 本文向大家介绍如何在Linux上递归搜索所有文件中的字符串,包括了如何在Linux上递归搜索所有文件中的字符串的使用技巧和注意事项,需要的朋友参考一下 的grep命令用于搜索文本或扫描包含匹配到给定的字符串或单词行给定记录。使用grep搜索与一个或多个正则表达式匹配的文本行,并仅输出匹配的行。使用grep命令,我们可以在Linux上递归地在所有文件中搜索字符串。 的语法如下所示- 例如,在“下载”