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

在Elasticsearch查询中包含和排除索引

冯元徽
2023-03-14
问题内容

我有以下Elasticsearch查询。

GET /index1,index2/type1,type2/_search?q=programming

假设我想index2从此搜索查询中排除。该文档指出以下内容:

它还支持通配符,例如:test ,以及“添加”(+)和“删除”(-)的功能,例如:+ test ,-test3。

据我了解,我应该能够执行以下操作。

GET /+index1,-index2/type1,type2/_search?q=programming

但是,出现以下错误。

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

如果删除加号和减号,则查询运行正常。如果添加通配符,它​​似乎可以工作,例如以下查询。

GET /index1,-*index2/type1,type2/_search?q=programming

但是,这并不是我真正想要的。

当我使用加号和减号包括或排除文档说明中的索引时,为什么查询不起作用?我误会了吗?

我正在使用Elasticsearch 2.1。


问题答案:

您需要对URL字符串中考虑的符号进行 编码 。见有在+``space``space``"resource.id": " index1",

这会起作用

GET /%2Bindex1,-index2/type1,type2/_search?q=programming

希望这可以帮助!!



 类似资料:
  • 我试图将查询与exclude查询一起使用,以便它匹配除要排除的术语之外的所有术语。我在一个基本的URI查询中找到了它,但不是常规的JSON查询。如何将此URI转换为JSON类型查询? 其中是不匹配的标记列表。 这是我目前所掌握的: 但是,当我这样做时,仍然包含在结果中。如何排除?

  • 问题内容: 具有以下映射: 我在上面放了两个项目: 现在,我想在每个字段上搜索,但是,所以我要做的是: 它应该只显示该项目,因为第二个项目带有单词,但是它在上,这就是我要忽略的内容。如何存档? PS:这只是一个简单的示例,我有一个包含很多属性的映射,我想在某些搜索中忽略其中的一些属性。 PS2:我正在使用ES 2.3.2 问题答案: 该设置仅在不返回响应中的字段时才有用,但这并不排除搜索该字段。

  • 我对Sumologic中的搜索查询有点迷茫。我需要获取包含

  • 问题内容: 我正在尝试作为请求执行查询,以便从我创建的索引中提取数据。索引中的数据是DB 的表,但是通过进行配置。 这是我的不带IN子句的请求: http:// localhost:9200 / response_summary / search?q = api:“位置” + AND + transactionoperationstatus:“已收费” + AND + operatorid =’D

  • 问题内容: 我必须找到具有字符串的匹配文档,例如:在某些“键”范围内的字符串:“ sky”。当我编写单独的匹配和范围查询时,我从ES中获得了输出,但是合并在一起时会抛出异常。 范围查询: 匹配查询: 组合查询: 组合查询在执行时会引发错误: 引发HTTP_EXCEPTIONS.get(状态码,TransportError)(状态码,error_message,Additional_info)ela

  • 将属性包含到模型中意味着 EF 将获得该属性的元数据,并且将尝试从数据库读取该属性的值或将该属性的值写入到数据库。 惯例 按照惯例,具有 getter 和 setter 访问器的公共(public)属性将被包含在模型中。 数据注解 可以使用数据注解将属性从模型中排除。 public class Blog { public int BlogId { get; set; } publi