# Query docs with circular references

**URL:** <https://discuss.elastic.co/t/query-docs-with-circular-references/131419>\
**Category:** Elasticsearch\
**Created:** [May 11, 2018, 7:18am UTC](https://discuss.elastic.co/t/query-docs-with-circular-references/131419 "2018-05-11T07:18:54Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Buntu\_Dev](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/buntu_dev/32/117258_2.png) [@Buntu\_Dev](https://discuss.elastic.co/u/Buntu_Dev)\
**Post date:** [May 11, 2018, 7:18am UTC](https://discuss.elastic.co/t/query-docs-with-circular-references/131419/1 "2018-05-11T07:18:54Z")

</div>

New to writing ES queries and have a docs like:

```
{
     "state" : "california",
     "relation" : "neighour_right",
     "related_state" : "arizona"
},
..
{ 
     "state" : "arizona",
     "relation" : "neighour_left",
     "related_state" : "california"
}

```

How do query the index to find the docs that have circular references like the above?

Thanks!

---

<div class="post-metadata">

**Author:** ![thiago](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/thiago/32/32096_2.png) [@thiago](https://discuss.elastic.co/u/thiago)\
**Post date:** [May 19, 2018, 4:50am UTC](https://discuss.elastic.co/t/query-docs-with-circular-references/131419/2 "2018-05-19T04:50:07Z")

</div>

That ain't possible. Elasticsearch does not handles relationships like that. At most, it can do hierarchical relationship (1-N) using either [Nested](https://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html) or [Parent/Child](https://www.elastic.co/guide/en/elasticsearch/reference/current/parent-join.html) mappings. Refer to the following for more information about relationships in Elasticsearch: [https://www.elastic.co/guide/en/elasticsearch/guide/current/relations.html](https://www.elastic.co/guide/en/elasticsearch/guide/current/relations.html)

---

<div class="post-metadata">

**Author:** ![Buntu\_Dev](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/buntu_dev/32/117258_2.png) [@Buntu\_Dev](https://discuss.elastic.co/u/Buntu_Dev)\
**Post date:** [May 21, 2018, 1:20am UTC](https://discuss.elastic.co/t/query-docs-with-circular-references/131419/3 "2018-05-21T01:20:51Z")

</div>

Thanks, will look into loading into some relational db and find the way out.

---

<div class="post-metadata">

**Author:** ![Mikhail\_Khludnev](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mikhail_khludnev/32/59591_2.png) [@Mikhail\_Khludnev](https://discuss.elastic.co/u/Mikhail_Khludnev)\
**Post date:** [May 21, 2018, 6:46pm UTC](https://discuss.elastic.co/t/query-docs-with-circular-references/131419/4 "2018-05-21T18:46:01Z")

</div>

Can Graph do something like that?

---

<div class="post-metadata">

**Author:** ![thiago](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/thiago/32/32096_2.png) [@thiago](https://discuss.elastic.co/u/thiago)\
**Post date:** [May 23, 2018, 6:53pm UTC](https://discuss.elastic.co/t/query-docs-with-circular-references/131419/5 "2018-05-23T18:53:19Z")

</div>

Graph would return a graph-like structure at term and document count level only. It doesn't turns Elasticsearch into a graph database.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [June 20, 2018, 6:53pm UTC](https://discuss.elastic.co/t/query-docs-with-circular-references/131419/6 "2018-06-20T18:53:23Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
