
solutions.siren.join.index.query.FieldDataTermsQueryBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of siren-join Show documentation
Show all versions of siren-join Show documentation
SIREn plugin that adds join capabilities to Elasticsearch
The newest version!
/**
* Copyright (c) 2016, SIREn Solutions. All Rights Reserved.
*
* This file is part of the SIREn project.
*
* SIREn is a free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* SIREn is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this program. If not, see .
*/
package solutions.siren.join.index.query;
import org.elasticsearch.common.xcontent.ToXContent;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import solutions.siren.join.common.Bytes;
import java.io.IOException;
public class FieldDataTermsQueryBuilder extends QueryBuilder {
/**
* The target field
*/
private final String name;
/**
* The list of long terms encoded in a byte array
*/
private final byte[] value;
/**
* A unique cache key for the query
*/
private final long cacheKey;
public FieldDataTermsQueryBuilder(String name, byte[] values, long cacheKey) {
this.name = name;
this.value = values;
this.cacheKey = cacheKey;
}
public FieldDataTermsQueryBuilder(String name, long[] values, long cacheKey) throws IOException {
this(name, Bytes.encode(values), cacheKey);
}
@Override
public void doXContent(XContentBuilder builder, ToXContent.Params params) throws IOException {
builder.startObject(FieldDataTermsQueryParser.NAME);
builder.startObject(name);
builder.field("value", value);
builder.field("_cache_key", cacheKey);
builder.endObject();
builder.endObject();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy