当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《在Elasticsearch查询中包含和排除索引》经验,为你挑选了1个好方法。

我有以下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。



1> ChintanShah2..:

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

这会起作用

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

希望这可以帮助!!

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有