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

如何在elasticsearch查询中实现以下条件?

邹麻雀
2023-03-14

我有一个索引,其中一些文档有一个名为“access_type”的字段。它可以有两个值,要么是“教师”,要么是“学生”。对于“access_type”的值为“afully”的文档,将有另一个名为“faculties”的字段,这是一个学院名称列表。因此,一个示例文档如下所示:

{
  "access_type": "faculty",
   "faculties": [
      "facultyId1",
      "facultyId2",
      "facultyId3"
   ]
}

现在,如果我们有两个输入,比如说一个用于access_type,另一个用于facculties。如果我得到以下输入“facultyID4”和“facultyID4”。首先,我需要筛选出所有与访问类型“Faculty”匹配的文档,然后在结果中,“FacuultyID4”应该搜索字段“Faculties”。由于“facultyid4”不在上面的文档中,所以不应该被认为是命中。如何将其实现为elasticsearch查询?

共有1个答案

佘辰龙
2023-03-14

发布http://your.ellastic.host:9200/index/type/_search

{
  "query": {
    "filtered": {
      "query": {
        "match_all": {}
      },
      "filter": {
        "bool": {
          "must": [
            {
              "term": {
                "access_type": "faculty"
              }
            },
            {
              "term": {
                "faculties": "facultyId4"
              }
            }
          ]
        }
      }
    }
  }
}
 类似资料:
  • 其中“in”是来自用户的输入。 我只从hibernate中的两个表中映射了Emp_Id作为主键,因此hibernate条件将只对该表应用联接,而不对Langcode应用联接。 注意:-我不能更改hibernate映射,只能使用hibernate标准,根据客户的要求,请帮助我。

  • 我使用ElasticSearch查询,通过Kibana获取数据。我在Java应用程序中也需要相同的请求。Kibana生成的查询如下: 我试图使用ElasticSearch Java API编写相同的查询,但得到的结果完全不同,与预期的输出完全不匹配。 你能帮我想出一个正确的吗?我现在做的方式如下。 不幸的是,我的代码返回错误的结果,即使是错误的“服务”值。 你能帮我把Java请求和JSON请求联系

  • 有多个文档,每个文档包含大约100个字段。我想执行以下搜索槽elasticsearch Java API5.x: 有3个字段我想用于这个搜索,即。

  • 问题内容: 我有一个用于Elasticsearch的简单JSON查询,如下所示: 仅当值(在这种情况下为“ a1”)不为空时,才如何执行第二个“必须”条件? 问题答案: 您可以使用以下方法实现它-

  • 我有2个与数据库表映射的类。 复合主键类: 1 : 加载配置文件 2:前进动力 我想执行查询 我使用JPA标准在java中编写了一个等效的查询 查询 我将选项设置为hibernate.show_sql = true。现在,该查询为我提供了确切的1000个所需结果。当我看到由ORM通过上述代码生成的Hibernate查询时。ORM为能量表创建1个查询,为前功率表创建1000个查询,这会导致性能问题,

  • 假设我有一个名为HQL(findRoomQuery)的文件: House实体的映射如下: 虽然Room实体是这样的: 这种关系是一个房子可以有一个或多个房间。 执行查询的代码如下: 您可以从选择r(r是h.room列表的别名)中看到HQL返回房间实体。 如何使用Hibernate条件查询做同样的事情?可能吗?