【问题标题】:How to search on queried documents in Elasticsearch?如何在 Elasticsearch 中搜索查询的文档?
【发布时间】:2020-10-12 10:54:06
【问题描述】:

我是 Elasticsearch 的新手,我遇到了一个问题。我的任务是搜索一组文档。例如,我有这样的结构数据:

type Doc struct{
   id string
   project_id string
   code string
   name string
   status string
}

但困难的是我要获取所有带有 project_id=abc 的文档,然后通过与关键字“test”匹配的任何其他字段(代码、名称、状态)搜索它们(例如)。如何在 Elasticsearch 查询中做到这一点,请帮助我!

谢谢。

【问题讨论】:

  • 您能分享一下您的索引映射、示例索引数据和您预期的搜索结果吗?
  • 您有机会浏览我的回答吗,期待您的反馈????

标签: elasticsearch


【解决方案1】:

您可以使用匹配文档的boolean query 其他查询的布尔组合。

must 与逻辑 AND 运算符相同,should 与逻辑 OR 运算符相同

添加一个包含索引数据、搜索查询和搜索结果的工作示例

索引数据:

{
  "id": 2,
  "project_id":"abc",
  "code": "a",
  "name":"bhavya",
  "status":"engineer"
}
{
  "id": 1,
  "project_id":"abc",
  "code": "a",
  "name":"bhavya",
  "status":"student"
}
{
  "id": 3,
  "project_id":"def",
  "code": "a",
  "name":"deeksha",
  "status":"engineer"
}

搜索查询:

给定的查询满足"project_id" = "abc" AND "name" : "bhavya" AND "status":"student" 的条件

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "project_id": "abc"
          }
        },
        {
          "match": {
            "name": "bhavya"
          }
        },
        {
          "match": {
            "status": "student"
          }
        }
      ]
    }
  }
}

搜索结果:

"hits": [
      {
        "_index": "stof_64274465",
        "_type": "_doc",
        "_id": "1",
        "_score": 1.7021472,
        "_source": {
          "id": 1,
          "project_id": "abc",
          "code": "a",
          "name": "bhavya",
          "status": "student"
        }
      }
    ]

【讨论】:

  • @iamatsundere181 我认为您不会收到任何 404 错误消息,因为 match 查询包含在 must 子句中。我已经在本地尝试了上述查询,并且效果很好。您能否再试一次,如果您的问题得到解决,请告诉我?
  • @iamatsundere181 你有机会看我的回答吗,期待得到你的反馈?
  • 伟大的@iamatsundere181 !如果我的回答帮助您解决了您的问题,请不要忘记也为我的回答点赞?
【解决方案2】:

我想也许使用 Logstash 并过滤一些数据可以帮助你。

【讨论】:

    【解决方案3】:

    这是我的解决方案

    GET /[index_name]/_search
    {
      "query": {
        "bool": {
          "must": [
            {
              "query_string": {
                "query": "some text here"
              }
            }
          ],
          "filter": [
            {
              "term": {
                "project_id.keyword": "abc"
              }
            }
          ]
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 2019-12-25
      • 1970-01-01
      • 2015-12-11
      • 2017-04-02
      • 2021-04-22
      相关资源
      最近更新 更多