elasticsearch匹配两个字段 [英] elasticsearch match two fields

查看:96
本文介绍了elasticsearch匹配两个字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 elasticsearch 上运行此简单的SQL查询?

How can I get this simple SQL query running on elasticsearch ?

SELECT * FROM [mytype]其中a = -23.4807339 AND b = -46.60068

SELECT * FROM [mytype] WHERE a = -23.4807339 AND b = -46.60068

我真的在语法上遇到麻烦,在我的情况下多重匹配查询不起作用,我应该使用哪种查询类型?

I'm really having troubles with it's syntax, multi-match queries doesn't work in my case, which query type should I use?

推荐答案

对于类似您的查询的 bool 过滤器,优先于过滤器.请参见此处有关此建议的整个故事以及为什么考虑该建议更有效率.

For queries like yours bool filter is preferred over and filter. See here the whole story about this suggestion and why is considered to be more efficient.

话虽这么说,我会选择这样做:

These being said, I would choose to do it like this:

{
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {"term": {"a": -23.4807339}},
            {"term": {"b": -46.60068}}
          ]
        }
      }
    }
  }
}

这篇关于elasticsearch匹配两个字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆