# termsFilter (java API)

**URL:** <https://discuss.elastic.co/t/termsfilter-java-api/6416>\
**Category:** Elasticsearch\
**Created:** [January 17, 2012, 9:58pm UTC](https://discuss.elastic.co/t/termsfilter-java-api/6416 "2012-01-17T21:58:31Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Frank\_LaRosa](https://avatars.discourse-cdn.com/v4/letter/f/bc8723/32.png) [@Frank\_LaRosa](https://discuss.elastic.co/u/Frank_LaRosa)\
**Post date:** [January 17, 2012, 9:58pm UTC](https://discuss.elastic.co/t/termsfilter-java-api/6416/1 "2012-01-17T21:58:31Z")

</div>

What's the correct way to use termsFilter from the Java API?

The method is defined as termsFilter(String name, int... values). This  
is fine if you have some fixed number of values to pass in that you  
can explicitly enumerate in code, but I have a variably sized list.

I tried passing ArrayList as the parameter. Java accepts this  
syntactically, but it doesn't work:

Caused by: java.io.IOException: Type not allowed [class  
java.util.ArrayList]  
at  
org.elasticsearch.common.xcontent.XContentBuilder.value(XContentBuilder.java:  
747)  
at  
org.elasticsearch.index.query.TermsFilterBuilder.doXContent(TermsFilterBuilder.java:  
144)  
at  
org.elasticsearch.index.query.BaseFilterBuilder.toXContent(BaseFilterBuilder.java:  
33)  
at  
org.elasticsearch.index.query.AndFilterBuilder.doXContent(AndFilterBuilder.java:  
81)  
at  
org.elasticsearch.index.query.BaseFilterBuilder.toXContent(BaseFilterBuilder.java:  
33)  
at  
org.elasticsearch.search.builder.SearchSourceBuilder.toXContent(SearchSourceBuilder.java:  
548)  
at  
org.elasticsearch.search.builder.SearchSourceBuilder.buildAsBytesStream(SearchSourceBuilder.java:  
501)  
... 8 more

---

<div class="post-metadata">

**Author:** ![Karussell1](https://avatars.discourse-cdn.com/v4/letter/k/50afbb/32.png) [@Karussell1](https://discuss.elastic.co/u/Karussell1)\
**Post date:** [January 18, 2012, 8:56am UTC](https://discuss.elastic.co/t/termsfilter-java-api/6416/2 "2012-01-18T08:56:56Z")

</div>

did you try to convert it into an array? which version do you use? I  
think it has fixed in a recent version...

Peter.

On 17 Jan., 22:58, Frank LaRosa [fr...@studyblue.com](mailto:fr...@studyblue.com) wrote:

> What's the correct way to use termsFilter from the Java API?
> 
> The method is defined as termsFilter(String name, int... values). This  
> is fine if you have some fixed number of values to pass in that you  
> can explicitly enumerate in code, but I have a variably sized list.
> 
> I tried passing ArrayList as the parameter. Java accepts this  
> syntactically, but it doesn't work:
> 
> Caused by: java.io.IOException: Type not allowed [class  
> java.util.ArrayList]  
> at  
> org.elasticsearch.common.xcontent.XContentBuilder.value(XContentBuilder.jav a:  
> 747)  
> at  
> org.elasticsearch.index.query.TermsFilterBuilder.doXContent(TermsFilterBuil der.java:  
> 144)  
> at  
> org.elasticsearch.index.query.BaseFilterBuilder.toXContent(BaseFilterBuilde r.java:  
> 33)  
> at  
> org.elasticsearch.index.query.AndFilterBuilder.doXContent(AndFilterBuilder. java:  
> 81)  
> at  
> org.elasticsearch.index.query.BaseFilterBuilder.toXContent(BaseFilterBuilde r.java:  
> 33)  
> at  
> org.elasticsearch.search.builder.SearchSourceBuilder.toXContent(SearchSourc eBuilder.java:  
> 548)  
> at  
> org.elasticsearch.search.builder.SearchSourceBuilder.buildAsBytesStream(Sea rchSourceBuilder.java:  
> 501)  
> ... 8 more

---

<div class="post-metadata">

**Author:** ![kimchy](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kimchy/32/44952_2.png) [@kimchy](https://discuss.elastic.co/u/kimchy)\
**Post date:** [January 18, 2012, 7:35pm UTC](https://discuss.elastic.co/t/termsfilter-java-api/6416/3 "2012-01-18T19:35:02Z")

</div>

I pushed support for TermsFilterBuilder to support Iterable as well. Will  
be in 0.19.

On Wed, Jan 18, 2012 at 10:56 AM, Karussell [tableyourtime@googlemail.com](mailto:tableyourtime@googlemail.com)wrote:

> did you try to convert it into an array? which version do you use? I  
> think it has fixed in a recent version...
> 
> Peter.
> 
> On 17 Jan., 22:58, Frank LaRosa [fr...@studyblue.com](mailto:fr...@studyblue.com) wrote:
> 
> > What's the correct way to use termsFilter from the Java API?
> > 
> > The method is defined as termsFilter(String name, int... values). This  
> > is fine if you have some fixed number of values to pass in that you  
> > can explicitly enumerate in code, but I have a variably sized list.
> > 
> > I tried passing ArrayList as the parameter. Java accepts this  
> > syntactically, but it doesn't work:
> > 
> > Caused by: java.io.IOException: Type not allowed [class  
> > java.util.ArrayList]  
> > at
> 
> org.elasticsearch.common.xcontent.XContentBuilder.value(XContentBuilder.jav  
> a:
> 
> > 1. at
> 
> org.elasticsearch.index.query.TermsFilterBuilder.doXContent(TermsFilterBuil  
> der.java:
> 
> > 1. at
> 
> org.elasticsearch.index.query.BaseFilterBuilder.toXContent(BaseFilterBuilde  
> r.java:
> 
> > 1. 
> > 
> > ```
> > at
> > 
> > ```
> 
> org.elasticsearch.index.query.AndFilterBuilder.doXContent(AndFilterBuilder.  
> java:
> 
> > 1. 
> > 
> > ```
> > at
> > 
> > ```
> 
> org.elasticsearch.index.query.BaseFilterBuilder.toXContent(BaseFilterBuilde  
> r.java:
> 
> > 1. 
> > 
> > ```
> > at
> > 
> > ```
> 
> org.elasticsearch.search.builder.SearchSourceBuilder.toXContent(SearchSourc  
> eBuilder.java:
> 
> > 1. at
> 
> org.elasticsearch.search.builder.SearchSourceBuilder.buildAsBytesStream(Sea  
> rchSourceBuilder.java:
> 
> > 1. ... 8 more

---

<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, 3:42am UTC](https://discuss.elastic.co/t/termsfilter-java-api/6416/4 "2017-07-06T03:42:18Z")

</div>


