当前位置: 首页 > 面试题库 >

带有multi_match AND bool的ElasticSearch

阮健
2023-03-14
问题内容

我尝试学习Elasticsearch将其添加到我的Rails应用程序中。我想对2个字段(就像它们只是一个字段)执行一次multi_match查询,并且还要对另一个必须等​​于1的字段(状态)进行过滤。

let response = Wine.search({
  query: {
    multi_match: {
      query: "test",
      fields: ["winery", "name"]
    },
    bool: {
      must: {
        term: { status: 1 }
      },
      should: [],
      minimum_should_match: 1
    }
  }     
})

错误是:

"fields\":[\"winery\",\"name\"]},\"bool\":{\"must\":{\"term\":{\"status\":1}},\"should\":[],\"minimum_should_match\":1}}}]]]; nested: ElasticsearchParseException[Expected field name but got START_OBJECT \"bool\"]; }]","status":400}

请求中有什么问题?如何一起执行multi_match和BOOL?


问题答案:

使用过滤查询:

{
    "query": {
        "filtered": {
            "query": {
                "multi_match": {
                    "query": "test",
                    "fields": [
                        "winery",
                        "name"
                    ]
                }
            },
            "filter": {
                "term": {
                    "status": "1"
                }
            }
        }
    }
}

与Elasticsearch 5相同的查询:

{
    "query": {
        "bool": {
            "must": {
                "multi_match": {
                    "query": "test",
                    "fields": [
                        "winery",
                        "name"
                    ]
                }
            },
            "filter": {
                "term": {
                    "status": "1"
                }
            }
        }
    }
}


 类似资料:
  • 现在我的问题是,如何在自定义的而不是自定义的中重写方法?我没有在这里公布我的代码,因为它与链接的代码本质上是相同的,只是我需要为子创建一个自定义的来代替,这样它就可以按照“pptang”的答案所述进行正确的度量。 否则,有没有比在第二个RecyclerView中使用1个RecyclerView更好的方法?只能有1个RecyclerView使用上述列表和每个中唯一项的网格填充活动/片段吗?

  • 问题内容: 两者之间到底有什么区别 和 第一个只是加快字段初始化速度的捷径吗?有性能方面的考虑吗? 问题答案: 第二种形式总是创建一个空的地图。 第一种形式是地图文字的特殊情况。地图文字允许创建 非空 地图: 现在,您的(通用)示例: 是没有初始值(键/值对)的地图文字。它完全等同于: 此外,这是为地图指定初始容量(大于初始分配的元素数量)的唯一方法。例: 将创建一个地图,该地图具有足够的空间来容

  • 问题内容: 查看量角器文档,我发现有一个选项可以不使用Selenium服务器使用flag 来运行量角器。 使用硒服务器和不使用硒服务器运行量角器测试之间的区别是什么,除了后者仅支持Chrome,Firefox? 问题答案: 首先,目前,您有 5种不同的内置选项/方式来连接浏览器驱动程序 : 指定在本地启动Selenium独立服务器 指定连接到正在运行的硒服务器(本地或远程) 设置并连接到Sauce

  • 代码: 上下文:尝试在JavaScript中使用 编辑: 完整代码: 编辑: 无法获取

  • 在GlassFish Server开源版本3.1中部署。1(构建12): 引起原因:java.security.PrivilegedActionExcema:com.sun.xml.bind.v2.runtime.IllegalAnnotationsExceptions: 1个IllegalAnnotationExceptions的计数没有ObjectFactory与@XmlElementDecl

  • 问题内容: 我正在尝试制作一个支持cookie的URLConnection。根据文档,我可以使用: 我无法使此代码正常工作,然后我看到这仅适用于API 9(2.3)。但是,在较旧的模拟器中使用CookieManager不会出现错误,CookieManager存在,但是无法构造。有什么方法可以使此版本适用于早期版本?我试过了: 但这不起作用。 问题答案: 我能够使用Ian Brown的CookieM