Skip to content

Instantly share code, notes, and snippets.

@nachiketkb
Created July 23, 2011 13:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nachiketkb/1101431 to your computer and use it in GitHub Desktop.
Save nachiketkb/1101431 to your computer and use it in GitHub Desktop.
Query Builders unable to build queries.
package nachiket.trial;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.CustomScoreQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
public class Tryout {
public static void main(String args[])
{
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.boost(0);
boolQueryBuilder.must( QueryBuilders.boostingQuery().positive( QueryBuilders.termQuery("a1", "b1") ).negative( QueryBuilders.termQuery("c1", "d1") ).negativeBoost(0) );
boolQueryBuilder.must( QueryBuilders.boostingQuery().positive( QueryBuilders.termQuery("a2", "b2") ).negative( QueryBuilders.termQuery("c2", "d2") ).negativeBoost(1) );
CustomScoreQueryBuilder customScoreQueryBuilder = QueryBuilders.customScoreQuery( boolQueryBuilder ).script("scoring").lang("native").params(null);
CustomScoreQueryBuilder custom = QueryBuilders.customScoreQuery( QueryBuilders.customScoreQuery( boolQueryBuilder ).script("_score") );
Client client = new TransportClient().addTransportAddress(new InetSocketTransportAddress("192.168.1.8",9300));
System.out.println(custom.toString());
// System.out.println( custom.buildAsUnsafeBytes() );
SearchResponse response = client.prepareSearch("twitter").setTypes("doc")
.setQuery( QueryBuilders.boolQuery().must( QueryBuilders.termQuery("a","b") )
.must( QueryBuilders.boostingQuery().positive( QueryBuilders.termQuery("a", "v") ).negative( QueryBuilders.termQuery("c", "d") ).negativeBoost(0) )
).execute()
.actionGet();
}
}
Exception in thread "main" org.elasticsearch.search.builder.SearchSourceBuilderException: Failed to build search source
at org.elasticsearch.search.builder.SearchSourceBuilder.buildAsUnsafeBytes(SearchSourceBuilder.java:389)
at org.elasticsearch.action.search.SearchRequest.source(SearchRequest.java:259)
at org.elasticsearch.client.action.search.SearchRequestBuilder.doExecute(SearchRequestBuilder.java:574)
at org.elasticsearch.client.action.support.BaseRequestBuilder.execute(BaseRequestBuilder.java:56)
at org.elasticsearch.client.action.support.BaseRequestBuilder.execute(BaseRequestBuilder.java:51)
at nachiket.trial.Tryout.main(Tryout.java:28)
Caused by: org.elasticsearch.common.jackson.JsonGenerationException: Current context not an ARRAY but OBJECT
at org.elasticsearch.common.jackson.impl.JsonGeneratorBase._reportError(JsonGeneratorBase.java:480)
at org.elasticsearch.common.jackson.smile.SmileGenerator.writeEndArray(SmileGenerator.java:561)
at org.elasticsearch.common.xcontent.json.JsonXContentGenerator.writeEndArray(JsonXContentGenerator.java:58)
at org.elasticsearch.common.xcontent.XContentBuilder.endArray(XContentBuilder.java:226)
at org.elasticsearch.index.query.BoolQueryBuilder.doXArrayContent(BoolQueryBuilder.java:146)
at org.elasticsearch.index.query.BoolQueryBuilder.doXContent(BoolQueryBuilder.java:119)
at org.elasticsearch.index.query.BaseQueryBuilder.toXContent(BaseQueryBuilder.java:64)
at org.elasticsearch.search.builder.SearchSourceBuilder.toXContent(SearchSourceBuilder.java:420)
at org.elasticsearch.search.builder.SearchSourceBuilder.buildAsUnsafeBytes(SearchSourceBuilder.java:386)
... 5 more
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment