Elasticsearch で join フィールドの値でフィルタする方法

Published: 2022/1/10


例えば、 Elasticsearch の join フィールドタイプを利用する場合、 index する際の document は以下のように記述される。 ("join_field" が join のフィールドであった場合)

POST some-index/_doc/
{
  "field1": "value1",
  "join_field": {
    "name": "parent"
  }
}

この時、 join フィールドの名前(親なのか子なのか)によってフィルタしたい時にどうするか、という話。

結論

ただの keyword type のフィールドと同じように、 term フィルターを実行すれば良い。

GET some-index/_search
{
  "term": {
    "join_field": "parent"
  }
}

参考

https://stackoverflow.com/questions/57210828/how-to-query-an-elasticsearch-join-field-name


Tags: elasticsearch
Next: システムの信頼度と確率
Prev: RSA を既約剰余類群の観点で見たときのメモ