
io.github.meilisearch.client.querybuilder.DefaultQueryBuilder Maven / Gradle / Ivy
package io.github.meilisearch.client.querybuilder;
import io.github.meilisearch.client.querybuilder.delete.*;
import io.github.meilisearch.client.querybuilder.insert.DefaultOverrideDocuments;
import io.github.meilisearch.client.querybuilder.insert.DefaultUpsertDocuments;
import io.github.meilisearch.client.querybuilder.insert.OverrideDocuments;
import io.github.meilisearch.client.querybuilder.insert.UpsertDocuments;
import io.github.meilisearch.client.querybuilder.search.*;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
public class DefaultQueryBuilder implements FromIndex, IntoIndex {
public static final String SEARCH_PHRASE_DELIM = "\"";
private final String index;
public DefaultQueryBuilder(String index) {
Objects.requireNonNull(index, "index can not be null");
this.index = index;
}
@Override
public GetDocuments get() {
return new DefaultGetDocuments(index);
}
@Override
public GetDocument get(String documentId) {
return new DefaultGetDocument(index, documentId);
}
@Override
public SearchRequest q(String q) {
return new DefaultSearchRequest(index).q(q);
}
@Override
public SearchRequest phrase(String phrase) {
String surroundedPhrase;
if (!phrase.startsWith(SEARCH_PHRASE_DELIM)) {
surroundedPhrase = SEARCH_PHRASE_DELIM +phrase+ SEARCH_PHRASE_DELIM;
} else {
surroundedPhrase = phrase;
}
return new DefaultSearchRequest(index).q(surroundedPhrase);
}
@Override
public SearchRequest filter(String filter) {
return new DefaultSearchRequest(index).filter(filter);
}
@Override
public SearchRequest appendFilters(Collection filters) {
return new DefaultSearchRequest(index).appendFilters(filters);
}
@Override
public SearchRequest facet(String facet) {
return new DefaultSearchRequest(index).facet(facet);
}
@Override
public SearchRequest facets(Collection facets) {
return new DefaultSearchRequest(index).facets(facets);
}
@Override
public SearchRequest retrieveAttributes(Collection attributesToRetrieve) {
return new DefaultSearchRequest(index).retrieveAttributes(attributesToRetrieve);
}
@Override
public SearchRequest cropAttributes(Collection attributesToCrop) {
return new DefaultSearchRequest(index).cropAttributes(attributesToCrop);
}
@Override
public SearchRequest cropLength(int cropLength) {
return new DefaultSearchRequest(index).cropLength(cropLength);
}
@Override
public SearchRequest markCropBoundariesWith(String cropMarker) {
return new DefaultSearchRequest(index).markCropBoundariesWith(cropMarker);
}
@Override
public SearchRequest sortBy(String field, SortOrder sortOrder) {
return new DefaultSearchRequest(index).sortBy(field, sortOrder);
}
@Override
public SearchRequest sortAscBy(String field) {
return new DefaultSearchRequest(index).sortAscBy(field);
}
@Override
public SearchRequest sortDescBy(String field) {
return new DefaultSearchRequest(index).sortDescBy(field);
}
@Override
public SearchRequest sortByDistanceFromPoint(double lat, double lon, SortOrder sortOrder) {
return new DefaultSearchRequest(index).sortByDistanceFromPoint(lat, lon, sortOrder);
}
@Override
public SearchRequest.AroundPoint aroundPoint(double lat, double lon) {
return new DefaultSearchRequest(index).aroundPoint(lat, lon);
}
@Override
public OverrideDocuments overrideDocuments(List documents) {
return new DefaultOverrideDocuments<>(this.index, documents);
}
@Override
public UpsertDocuments upsertDocuments(List documents) {
return new DefaultUpsertDocuments<>(this.index, documents);
}
@Override
public DeleteAllDocuments deleteAll() {
return new DefaultDeleteAllDocuments(this.index);
}
@Override
public DeleteOneDocument delete(T uid) {
return new DefaultDeleteOneDocument<>(this.index, uid);
}
@Override
public DeleteDocumentsByIds delete(Collection ids) {
List documentsIds = ids.stream().map(String::valueOf).collect(Collectors.toList());
return new DefaultDeleteDocumentsByIds(this.index, documentsIds);
}
@Override
public DeleteDocumentsByFilter deleteByFilter(String filter) {
return new DefaultDeleteDocumentsByFilter(this.index)
.filter(filter);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy