我有以下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
希望这可以帮助!!