
com.redislabs.mesclun.search.CreateOptions Maven / Gradle / Ivy
package com.redislabs.mesclun.search;
import com.redislabs.mesclun.search.protocol.RediSearchCommandArgs;
import lombok.*;
import java.util.List;
import static com.redislabs.mesclun.search.protocol.CommandKeyword.*;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CreateOptions implements RediSearchArgument {
public enum Structure {
HASH
}
private Structure on;
@Singular
private List prefixes;
private String filter;
private SearchOptions.Language defaultLanguage;
private K languageField;
private Double defaultScore;
private K scoreField;
private K payloadField;
private boolean maxTextFields;
private Long temporary;
private boolean noOffsets;
private boolean noHL;
private boolean noFields;
private boolean noFreqs;
private boolean noItitialScan;
/**
* set to empty list for STOPWORDS 0
*/
private List stopWords;
@Override
public void build(RediSearchCommandArgs args) {
if (on != null) {
args.add(ON);
args.add(on.name());
}
if (prefixes != null) {
args.add(PREFIX);
args.add(prefixes.size());
prefixes.forEach(args::addKey);
}
if (filter != null) {
args.add(FILTER);
args.add(filter);
}
if (defaultLanguage != null) {
args.add(LANGUAGE);
args.add(defaultLanguage.name());
}
if (languageField != null) {
args.add(LANGUAGE_FIELD);
args.addKey(languageField);
}
if (defaultScore != null) {
args.add(SCORE);
args.add(defaultScore);
}
if (scoreField != null) {
args.add(SCORE_FIELD);
args.addKey(scoreField);
}
if (payloadField != null) {
args.add(PAYLOAD_FIELD);
args.addKey(payloadField);
}
if (maxTextFields) {
args.add(MAXTEXTFIELDS);
}
if (temporary != null) {
args.add(TEMPORARY);
args.add(temporary);
}
if (noOffsets) {
args.add(NOOFFSETS);
}
if (noHL) {
args.add(NOHL);
}
if (noFields) {
args.add(NOFIELDS);
}
if (noFreqs) {
args.add(NOFREQS);
}
if (noItitialScan) {
args.add(NOINITIALSCAN);
}
if (stopWords != null) {
args.add(STOPWORDS);
args.add(stopWords.size());
stopWords.forEach(args::addValue);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy