我有三个自己的指数: A , B , C 。另外我有 .marvel-kibana 索引。 A , B , C 索引中的所有文档都有 global_priorty 字段。
我想知道,为什么尽管排除了除ABC指数以外的所有指数,弹性抛出异常: ElasticsearchException [无法在 .marvel-kibana中找到字段[global_priorty]] 的字段映射器< / strong>索引?不排除该索引(默认包含在no_match_filter中)?
我的代码:
GET /_search
{
"query": {
"filtered": {
"query": {
"function_score": {
"query": { ... },
"functions": [
{
"field_value_factor": {
"field": "global_priorty",
"factor": 1,
"modifier": "sqrt"
}
}
]
}
},
"filter": {
"indices": {
"indices": [ "A", "B", "C" ],
"filter": { ... },
"no_match_filter": "none"
}
}
}
},
"indices_boost": { ... },
"highlight": { ... }
}
}
答案 0 :(得分:1)
卡罗尔,
我不确定你在这里达到了你想要的目标。在索引过滤器中列出索引并不意味着它从搜索中排除。
过滤器的工作方式如下: 对于 indices 列表中的索引,请使用过滤器。对于其他人,请使用 no_match_filter 。
过滤器的外观如何?
仅搜索选定索引的首选方法是在搜索端点中使用它们。类似的东西:
get /A,B,C/_search
{
....
}
提醒:我记得在设置多个索引和类型时遇到Java API问题。但它早在很久以前。
你应该试一试!
此致 卡罗尔
P.S。 Powodzenia!顺便说一句:Parafrazując:Wszystkie Karole到porządnechłopaki!