# Filter missing field, with OR condition

**URL:** <https://discuss.elastic.co/t/filter-missing-field-with-or-condition/13712>\
**Category:** Elasticsearch\
**Created:** [September 22, 2013, 8:53am UTC](https://discuss.elastic.co/t/filter-missing-field-with-or-condition/13712 "2013-09-22T08:53:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tran\_Quy\_Doan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tran_quy_doan/32/2140_2.png) [@Tran\_Quy\_Doan](https://discuss.elastic.co/u/Tran_Quy_Doan)\
**Post date:** [September 22, 2013, 8:53am UTC](https://discuss.elastic.co/t/filter-missing-field-with-or-condition/13712/1 "2013-09-22T08:53:57Z")

</div>

I have a deleted\_at column, which can be null. And I want to make query  
like this :

```
"delete_is is not null OR deleted_at >= #{Time.zone.now}" 

```

My code is:

Product.tire.search(:page =\> @properties[:page], :per\_page =\>  
@properties[:per\_page]) do |search|  
search.filter :or, [{missing: { field: "deleted\_at" } }, { range: {  
deleted\_at: { gte: Time.zone.now } } } ]  
end

It does not work. When I remove 'range' conditions, it works.  
Thanks you for your helps.

--  
You received this message because you are subscribed to the Google Groups "elasticsearch" group.  
To unsubscribe from this group and stop receiving emails from it, send an email to [elasticsearch+unsubscribe@googlegroups.com](mailto:elasticsearch+unsubscribe@googlegroups.com).  
For more options, visit [https://groups.google.com/groups/opt\_out](https://groups.google.com/groups/opt_out).

---

<div class="post-metadata">

**Author:** ![johtani](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/johtani/32/44956_2.png) [@johtani](https://discuss.elastic.co/u/johtani)\
**Post date:** [September 23, 2013, 2:09am UTC](https://discuss.elastic.co/t/filter-missing-field-with-or-condition/13712/2 "2013-09-23T02:09:38Z")

</div>

Hi Tran,

Your example query include "delete\_is",  
but your code does not include "delete\_is".

And "missing filter" find only "missing" field, not equal "not null".

Please check your query or code.

* * *

Jun Ohtani  
[johtani@gmail.com](mailto:johtani@gmail.com)  
twitter : [http://twitter.com/johtani](http://twitter.com/johtani)

On 2013/09/22, at 17:53, Tran Quy Doan [quydoantran@gmail.com](mailto:quydoantran@gmail.com) wrote:

> I have a deleted\_at column, which can be null. And I want to make query like this :
> 
> ```
> "delete_is is not null OR deleted_at >= #{Time.zone.now}" 
> 
> ```
> 
> My code is:
> 
> Product.tire.search(:page =\> @properties[:page], :per\_page =\> @properties[:per\_page]) do |search|  
> search.filter :or, [{missing: { field: "deleted\_at" } }, { range: { deleted\_at: { gte: Time.zone.now } } }]  
> end
> 
> It does not work. When I remove 'range' conditions, it works.  
> Thanks you for your helps.
> 
> --  
> You received this message because you are subscribed to the Google Groups "elasticsearch" group.  
> To unsubscribe from this group and stop receiving emails from it, send an email to [elasticsearch+unsubscribe@googlegroups.com](mailto:elasticsearch+unsubscribe@googlegroups.com).  
> For more options, visit [https://groups.google.com/groups/opt\_out](https://groups.google.com/groups/opt_out).

--  
You received this message because you are subscribed to the Google Groups "elasticsearch" group.  
To unsubscribe from this group and stop receiving emails from it, send an email to [elasticsearch+unsubscribe@googlegroups.com](mailto:elasticsearch+unsubscribe@googlegroups.com).  
For more options, visit [https://groups.google.com/groups/opt\_out](https://groups.google.com/groups/opt_out).

---

<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:** [July 6, 2017, 2:15am UTC](https://discuss.elastic.co/t/filter-missing-field-with-or-condition/13712/3 "2017-07-06T02:15:11Z")

</div>


