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

当多索引、多类型搜索时,ElasticSearch返回404

公羊英达
2023-03-14

我们有一个需要跨多个索引查询的要求,如下所示
我们使用的是ElasticSearch 5.1.1.
http://localhost:9200/index1,index2,index3/type1,type2/_search
查询:

{
 "query": {
  "multi_match": {
   "query": "data",
   "fields": ["status"]
  }
 }
}

但是,我们可能无法预先知道该索引是否存在,如果上述任何一个索引都不存在,我们将得到以下错误。

{
    "error": {
        "root_cause": [
            {
                "type": "index_not_found_exception",
                "reason": "no such index",
                "resource.type": "index_or_alias",
                "resource.id": "index3",
                "index_uuid": "_na_",
                "index": "index3"
            }
        ],
        "type": "index_not_found_exception",
        "reason": "no such index",
        "resource.type": "index_or_alias",
        "resource.id": "index3",
        "index_uuid": "_na_",
        "index": "index3"
    },
    "status": 404
}

一个明显的方法是检查索引是否已经存在,但我希望避免额外的调用
注意:至少有1个索引将始终存在
可以避免此异常吗?
提前感谢!!

共有1个答案

尉迟宪
2023-03-14

“ignore_unavailable”是解决这个问题的方法。将此作为搜索URL中的查询参数传递。EXA.http://localhost:9200/index1,index2/type/_search?ignore_unavailable

即使其中任何一个索引都不存在,这也不会给出404

 类似资料:
  • 问题内容: 我有一个用例,其中在同一索引中有两种不同的类型。两种类型都有不同的结构和映射。 我需要使用不同的查询DSL同时查询这两种类型。 如何构建查询DSL以同时查询多个相同索引类型。 我在https://www.elastic.co/guide/en/elasticsearch/guide/current/multi-index- multi- type.html上 查看了Elasticsea

  • 按照文档的规范示例,假设我想在elasticsearch中存储推文,但我想指定一个处理两个以上字段的endpoint,例如。 在本例中,我想在推特上建立索引,但也要在推特句柄和月份上建立索引,包括推特类型和id。 这是可能的,还是唯一可能的映射类似于他们提供的东西,一个和一个,例如?

  • 问题内容: 我正在使用并希望elasticsearch返回搜索的单词而不仅仅是点击。当我搜索单词并且模糊搜索找到单词时,我想知道是谁找到了它。 数据: 查询: 该查询将返回,但不知道是否找到它。 有人知道该怎么做或一个主意吗?我希望输出为。 问题答案: 您可以为此命名查询,方法是为每个查询命名。在结果中,每个匹配都将包含一个数组,其中包含匹配的查询的名称(例如及以下)。

  • 问题内容: 我在同一台Ubuntu服务器上有一个Rails 3应用程序的暂存和生产实例(使用tyre gem)。看来这两个实例都共享相同的elasticsearch索引,这显然不是我想要的。 如何使生产和登台实例使用单独的实例? 问题答案: 您需要覆盖索引名称。假设您要绑定ActiveRecord,它将根据相关模型创建索引名称。您可以使用这样的前缀来调整名称; 然后会创建一个名为的索引,以此类推。

  • 我在一个数据库中有很多项,有很多列。我需要在其中的两个列中搜索以获得一个数据集。第一列将把具有该代码的任何行分组在一起。第二列调用要添加的特定行,因为它缺少我要查找的的列表。 后端C#为我设置了json,如下所示,但它什么也不返回。 我得到和空的结果集。如果我删除中的任何一个,我就会得到我所期望的结果。所以,我只需要将这些术语合并到一个搜索中。 我在这里浏览了大量文档:https://www.el

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!