function_score尝试在elasticsearch中使用排除索引中的字段

时间:2015-04-09 10:59:36

标签: elasticsearch

我有三个自己的指数: 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": { ... }
  }
}

1 个答案:

答案 0 :(得分:1)

卡罗尔,

我不确定你在这里达到了你想要的目标。在索引过滤器中列出索引并不意味着它从搜索中排除。

过滤器的工作方式如下: 对于 indices 列表中的索引,请使用过滤器。对于其他人,请使用 no_match_filter

过滤器的外观如何?

仅搜索选定索引的首选方法是在搜索端点中使用它们。类似的东西:

get /A,B,C/_search 
{
....
}

提醒:我记得在设置多个索引和类型时遇到Java API问题。但它早在很久以前。

你应该试一试!

此致 卡罗尔

P.S。 Powodzenia!顺便说一句:Parafrazując:Wszystkie Karole到porządnechłopaki!