1

多くのタグを含むユーザー ドキュメントがあります
。マッピングは次のとおりです。

{
  "user" : {
    "properties" : {
      "tags" : {
        "type" : "nested",
        "properties" : {
          "id" : {
            "type" : "string",
            "index" : "not_analyzed",
            "store" : "yes"
          },
          "current" : {
            "type" : "boolean"
          },
          "type" : {
            "type" : "string"
          },
          "value" : {
            "type" : "multi_field",
            "fields" : {
              "value" : {
                "type" : "string",
                "analyzer" : "name_analyzer"
              },
              "value_untouched" : {
                "type" : "string",
                "index" : "not_analyzed",
                "include_in_all" : false
              }
            }
          }
        }
      }
    }
  }
}

サンプルのユーザー ドキュメントは次のとおりです。
ユーザー 1

{
  "created_at": 1317484762000,
  "updated_at": 1367040856000,
  "tags": [
    {
      "type": "college",
      "value": "Dhirubhai Ambani Institute of Information and Communication Technology",
      "id": "a6f51ef8b34eb8f24d1c5be5e4ff509e2a361829"
    },
    {
      "type": "company",
      "value": "alma connect",
      "id": "58ad4afcc8415216ea451339aaecf311ed40e132"
    },
    {
      "type": "company",
      "value": "Google",
      "id": "93bc8199c5fe7adfd181d59e7182c73fec74eab5",
      "current": true
    },
    {
      "type": "discipline",
      "value": "B.Tech.",
      "id": "a7706af7f1477cbb1ac0ceb0e8531de8da4ef1eb",
      "institute_id": "4fb424a5addf32296f00013a"
    },    
  ]
}

ユーザー 2:

{
  "created_at": 1318513355000,
  "updated_at": 1364888695000,
  "tags": [
    {
      "type": "college",
      "value": "Dhirubhai Ambani Institute of Information and Communication Technology",
      "id": "a6f51ef8b34eb8f24d1c5be5e4ff509e2a361829"
    },
    {
      "type": "college",
      "value": "Bharatiya Vidya Bhavan's Public School, Jubilee hills, Hyderabad",
      "id": "d20730345465a974dc61f2132eb72b04e2f5330c"
    },
    {
      "type": "company",
      "value": "Alma Connect",
      "id": "93bc8199c5fe7adfd181d59e7182c73fec74eab5"
    },
    {
      "type": "sector",
      "value": "Website and Software Development",
      "id": "dc387d78fc99ab43e6ae2b83562c85cf3503a8a4"
    }    
  ]
}

ユーザー 3:

{
  "created_at": 1318513355001,
  "updated_at": 1364888695010,
  "tags": [
    {
      "type": "college",
      "value": "Dhirubhai Ambani Institute of Information and Communication Technology",
      "id": "a6f51ef8b34eb8f24d1c5be5e4ff509e2a361821"
    },
    {
      "type": "sector",
      "value": "Website and Software Development",
      "id": "dc387d78fc99ab43e6ae2b83562c85cf3503a8a1"
    }    
  ]
}

上記の ES ドキュメントを検索に使用して、ネストされたタグ ドキュメントに企業タグを持つユーザー、または企業タグを持たないユーザーを取得する必要があるクエリを作成したいと考えています。私の検索クエリは何ですか?

たとえば、上記の場合、Google タグを検索すると、返されるドキュメントは「ユーザー 1」と「ユーザー 3」になります (ユーザー 1 には企業タグ google があり、ユーザー 3 には企業タグがないため)。ユーザー 2 は、google 以外の会社タグも持っているため、返されません。

4

1 に答える 1