Feature - INDEXMISSING option added in RSearch options.

pull/6077/head
Nikita Koksharov 6 months ago
parent 0d80e7dae2
commit f7b87c2bd9

@ -229,6 +229,9 @@ public class RedissonSearch implements RSearch {
if (params.isNoIndex()) {
args.add("NOINDEX");
}
if (params.isIndexMissing()) {
args.add("INDEXMISSING");
}
}
}
@ -250,6 +253,9 @@ public class RedissonSearch implements RSearch {
if (params.isNoIndex()) {
args.add("NOINDEX");
}
if (params.isIndexMissing()) {
args.add("INDEXMISSING");
}
}
}
@ -284,6 +290,9 @@ public class RedissonSearch implements RSearch {
if (params.isIndexEmpty()) {
args.add("INDEXEMPTY");
}
if (params.isIndexMissing()) {
args.add("INDEXMISSING");
}
}
}
@ -322,6 +331,9 @@ public class RedissonSearch implements RSearch {
if (params.isIndexEmpty()) {
args.add("INDEXEMPTY");
}
if (params.isIndexMissing()) {
args.add("INDEXMISSING");
}
}
}

@ -46,4 +46,11 @@ public interface GeoIndex extends FieldIndex {
*/
GeoIndex noIndex();
/**
* Defines to index documents that don't contain this attribute
*
* @return options object
*/
GeoIndex indexMissing();
}

@ -26,26 +26,36 @@ public final class GeoIndexParams implements GeoIndex {
private boolean noIndex;
private String fieldName;
private String as;
private boolean indexMissing;
protected GeoIndexParams(String name) {
GeoIndexParams(String name) {
this.fieldName = name;
}
@Override
public GeoIndexParams as(String as) {
this.as = as;
return this;
}
@Override
public GeoIndexParams sortMode(SortMode sortMode) {
this.sortMode = sortMode;
return this;
}
@Override
public GeoIndexParams noIndex() {
this.noIndex = true;
return this;
}
@Override
public GeoIndexParams indexMissing() {
this.indexMissing = true;
return this;
}
public SortMode getSortMode() {
return sortMode;
}
@ -61,4 +71,8 @@ public final class GeoIndexParams implements GeoIndex {
public String getAs() {
return as;
}
public boolean isIndexMissing() {
return indexMissing;
}
}

@ -46,4 +46,11 @@ public interface NumericIndex extends FieldIndex {
*/
NumericIndex noIndex();
/**
* Defines to index documents that don't contain this attribute
*
* @return options object
*/
NumericIndex indexMissing();
}

@ -26,26 +26,36 @@ public final class NumericIndexParams implements NumericIndex {
private boolean noIndex;
private final String fieldName;
private String as;
private boolean indexMissing;
NumericIndexParams(String name) {
this.fieldName = name;
}
@Override
public NumericIndexParams as(String as) {
this.as = as;
return this;
}
@Override
public NumericIndexParams sortMode(SortMode sortMode) {
this.sortMode = sortMode;
return this;
}
@Override
public NumericIndexParams noIndex() {
noIndex = true;
return this;
}
@Override
public NumericIndexParams indexMissing() {
this.indexMissing = true;
return this;
}
public SortMode getSortMode() {
return sortMode;
}
@ -61,4 +71,8 @@ public final class NumericIndexParams implements NumericIndex {
public String getAs() {
return as;
}
public boolean isIndexMissing() {
return indexMissing;
}
}

@ -79,5 +79,12 @@ public interface TagIndex extends FieldIndex {
*/
TagIndex indexEmpty();
/**
* Defines to index documents that don't contain this attribute
*
* @return options object
*/
TagIndex indexMissing();
}

@ -30,16 +30,19 @@ public final class TagIndexParams implements TagIndex {
private boolean withSuffixTrie;
private String separator;
private boolean indexEmpty;
private boolean indexMissing;
TagIndexParams(String name) {
this.fieldName = name;
}
@Override
public TagIndexParams as(String as) {
this.as = as;
return this;
}
@Override
public TagIndexParams separator(String separator) {
if (separator.length() != 1) {
throw new IllegalArgumentException("Separator should be a single character");
@ -48,31 +51,42 @@ public final class TagIndexParams implements TagIndex {
return this;
}
@Override
public TagIndexParams sortMode(SortMode sortMode) {
this.sortMode = sortMode;
return this;
}
@Override
public TagIndexParams caseSensitive() {
caseSensitive = true;
return this;
}
@Override
public TagIndexParams noIndex() {
noIndex = true;
return this;
}
@Override
public TagIndexParams withSuffixTrie() {
withSuffixTrie = true;
return this;
}
@Override
public TagIndexParams indexEmpty() {
this.indexEmpty = true;
return this;
}
@Override
public TagIndexParams indexMissing() {
this.indexMissing = true;
return this;
}
public String getFieldName() {
return fieldName;
}
@ -105,5 +119,9 @@ public final class TagIndexParams implements TagIndex {
return indexEmpty;
}
public boolean isIndexMissing() {
return indexMissing;
}
}

@ -84,4 +84,11 @@ public interface TextIndex extends FieldIndex {
*/
TextIndex indexEmpty();
/**
* Defines to index documents that don't contain this attribute
*
* @return options object
*/
TextIndex indexMissing();
}

@ -31,51 +31,66 @@ public final class TextIndexParams implements TextIndex {
private boolean withSuffixTrie;
private Double weight;
private boolean indexEmpty;
private boolean indexMissing;
TextIndexParams(String name) {
this.fieldName = name;
}
@Override
public TextIndexParams as(String as) {
this.as = as;
return this;
}
@Override
public TextIndexParams sortMode(SortMode sortMode) {
this.sortMode = sortMode;
return this;
}
@Override
public TextIndexParams noStem() {
noStem = true;
return this;
}
@Override
public TextIndexParams noIndex() {
noIndex = true;
return this;
}
@Override
public TextIndexParams withSuffixTrie() {
withSuffixTrie = true;
return this;
}
@Override
public TextIndexParams phonetic(PhoneticMatcher matcher) {
this.matcher = matcher;
return this;
}
@Override
public TextIndexParams weight(Double weight) {
this.weight = weight;
return this;
}
@Override
public TextIndexParams indexEmpty() {
this.indexEmpty = true;
return this;
}
@Override
public TextIndexParams indexMissing() {
this.indexMissing = true;
return this;
}
public String getFieldName() {
return fieldName;
}
@ -112,4 +127,7 @@ public final class TextIndexParams implements TextIndex {
return indexEmpty;
}
public boolean isIndexMissing() {
return indexMissing;
}
}

Loading…
Cancel
Save