当前位置: 首页 > 知识库问答 >
问题:

Elasticsearch教程或搜索(结合必须和应该)

陶征
2023-03-14

为了开始使用elasticsearch和kibana,我尝试了教程。但现在我得到了一个我自己无法解决的错误。

它对这个非常有趣:elasticsearch bool查询组合必须与或

POST shakespeare/scene/_search/
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "play_name": "Antony"
          },
          "bool": {
            "should": [
              {
                "match": {
                  "speaker": "Demetrius"
                }
              },
              {
                "match": {
                  "speaker": "Antony"
                }
              }
            ]
          }
        }
      ]
    }
  }
}

亲切地问候格雷格

共有1个答案

乜胜泫
2023-03-14

我想你漏了一个括号。检查下面的查询。

POST shakespeare/scene/_search/
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "play_name": "Antony"
          }
        },
        {
          "bool": {
            "should": [
              {
                "match": {
                  "speaker": "Demetrius"
                }
              },
              {
                "match": {
                  "speaker": "Antony"
                }
              }
            ]
          }
        }
      ]
    }
  }
}
 类似资料:
  • 我正在尝试执行X和(y或z)的查询,我需要得到代理是列表代理还是销售代理的所有已售出的属性。 只有bool才能得到9324个结果。当我添加bool should时,我得到了相同的结果集9324。ID为140699的代理应该只有大约100个结果。我也尝试过一个布尔过滤器,但没有成功。当用过滤器替换should时,结果就像另一个bool must一样,我只得到代理是列表代理和销售代理的结果

  • 我目前正在尝试将一个基于Solr的应用程序迁移到ElasticSearch。 我有这个lucene查询 根据我的理解,这是一个必须子句与布尔OR结合的组合: “获取名称中包含(foo和bar)或信息中包含(foo和bar)的所有文档。之后,根据条件筛选结果state=1,并增强具有图像的文档。” 我一直试图在MUST中使用bool查询,但未能将boolean或转换为MUST子句。以下是我的资料:

  • 问题内容: 我试图以编程方式在Microsoft Bing搜索引擎上执行搜索。 这是我的理解: 有一个Bing Search API 2.0,即将被替换(2012年8月1日) 新的API被称为Windows Azure Marketplace。 两者使用不同的URL。 在旧的API(Bing Search API 2.0)中 ,您在URL中指定一个密钥(应用程序ID),该密钥将用于验证请求。只要您

  • 问题内容: 我目前正在尝试将基于Solr的应用程序迁移到Elasticsearch。 我有这个lucene查询 据我了解,这是MUST子句与布尔OR的组合: “获取所有包含(名称中包含foo AND条)或(信息中包含foo AND条)的所有文档。在此之后,按条件state = 1过滤结果,并增强具有图像的文档。” 我一直在尝试将布尔查询与MUST一起使用,但是我无法将布尔OR放入must子句中。这

  • 背景资料 我正在开发一个API,允许用户传递关于成员的详细信息列表(姓名,电子邮件地址,...)我想使用这些信息与我的Elasticsearch数据库中的帐户记录进行匹配,并返回潜在匹配的列表。 我以为这将是简单的做一个bool查询领域我想要的,但是我似乎没有得到任何点击。 我对Elasticsearch比较陌生,我当前的搜索请求如下所示。 查询示例 POST/member/account/\u搜

  • "在Elasticsearch中设计索引以便" 我们如何使Elasticsearch返回相同的结果,无论搜索是否使用"and"作为查询字符串或&" 例如,有一个查询来查找包含“和/”的所有电影标题 先生。 所以在这种情况下,搜索是否用“和”或“ 从我的Kibana开发工具中转储 放置测试索引{“设置”:{“副本的数量”:0,“碎片的数量”:1},“映射”:{“文档”:{“属性”:{“电影名称”:{