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

带有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

  • 问题内容: 情况:像在纸牌游戏中一样,画一堆纸牌。堆好。 为实现此目的,我将结合使用接口的自定义实现。使用自定义LayoutManager的原因是堆栈方向各不相同,有时纸牌彼此完全覆盖,有时彼此覆盖,而对于LayoutManager来说,此逻辑似乎是一项好工作,因为这基本上归结为设置布局的位置。牌。 因此,负责设置堆栈中所有组件的X和Y坐标。在另一方面是负责他们的z坐标(通过其层)。 向组件添加组

  • 问题内容: 我是初次使用Hibernate和Java。我收到以下异常。我在网上找到的有关此错误的信息似乎没有帮助。有任何想法吗?例外: 被称为的地方: 映射到数据库表的类: 谢谢, 谭 问题答案: 尝试在文件中的下添加元素。 我在JPA / EntityManager上所做的工作还不止这些,所以我不知道是否有添加整个程序包的方法。AFAIK在使用时,必须直接指定每个持久类。