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

@ -46,4 +46,11 @@ public interface GeoIndex extends FieldIndex {
*/ */
GeoIndex noIndex(); 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 boolean noIndex;
private String fieldName; private String fieldName;
private String as; private String as;
private boolean indexMissing;
protected GeoIndexParams(String name) { GeoIndexParams(String name) {
this.fieldName = name; this.fieldName = name;
} }
@Override
public GeoIndexParams as(String as) { public GeoIndexParams as(String as) {
this.as = as; this.as = as;
return this; return this;
} }
@Override
public GeoIndexParams sortMode(SortMode sortMode) { public GeoIndexParams sortMode(SortMode sortMode) {
this.sortMode = sortMode; this.sortMode = sortMode;
return this; return this;
} }
@Override
public GeoIndexParams noIndex() { public GeoIndexParams noIndex() {
this.noIndex = true; this.noIndex = true;
return this; return this;
} }
@Override
public GeoIndexParams indexMissing() {
this.indexMissing = true;
return this;
}
public SortMode getSortMode() { public SortMode getSortMode() {
return sortMode; return sortMode;
} }
@ -61,4 +71,8 @@ public final class GeoIndexParams implements GeoIndex {
public String getAs() { public String getAs() {
return as; return as;
} }
public boolean isIndexMissing() {
return indexMissing;
}
} }

@ -46,4 +46,11 @@ public interface NumericIndex extends FieldIndex {
*/ */
NumericIndex noIndex(); 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 boolean noIndex;
private final String fieldName; private final String fieldName;
private String as; private String as;
private boolean indexMissing;
NumericIndexParams(String name) { NumericIndexParams(String name) {
this.fieldName = name; this.fieldName = name;
} }
@Override
public NumericIndexParams as(String as) { public NumericIndexParams as(String as) {
this.as = as; this.as = as;
return this; return this;
} }
@Override
public NumericIndexParams sortMode(SortMode sortMode) { public NumericIndexParams sortMode(SortMode sortMode) {
this.sortMode = sortMode; this.sortMode = sortMode;
return this; return this;
} }
@Override
public NumericIndexParams noIndex() { public NumericIndexParams noIndex() {
noIndex = true; noIndex = true;
return this; return this;
} }
@Override
public NumericIndexParams indexMissing() {
this.indexMissing = true;
return this;
}
public SortMode getSortMode() { public SortMode getSortMode() {
return sortMode; return sortMode;
} }
@ -61,4 +71,8 @@ public final class NumericIndexParams implements NumericIndex {
public String getAs() { public String getAs() {
return as; return as;
} }
public boolean isIndexMissing() {
return indexMissing;
}
} }

@ -79,5 +79,12 @@ public interface TagIndex extends FieldIndex {
*/ */
TagIndex indexEmpty(); 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 boolean withSuffixTrie;
private String separator; private String separator;
private boolean indexEmpty; private boolean indexEmpty;
private boolean indexMissing;
TagIndexParams(String name) { TagIndexParams(String name) {
this.fieldName = name; this.fieldName = name;
} }
@Override
public TagIndexParams as(String as) { public TagIndexParams as(String as) {
this.as = as; this.as = as;
return this; return this;
} }
@Override
public TagIndexParams separator(String separator) { public TagIndexParams separator(String separator) {
if (separator.length() != 1) { if (separator.length() != 1) {
throw new IllegalArgumentException("Separator should be a single character"); throw new IllegalArgumentException("Separator should be a single character");
@ -48,31 +51,42 @@ public final class TagIndexParams implements TagIndex {
return this; return this;
} }
@Override
public TagIndexParams sortMode(SortMode sortMode) { public TagIndexParams sortMode(SortMode sortMode) {
this.sortMode = sortMode; this.sortMode = sortMode;
return this; return this;
} }
@Override
public TagIndexParams caseSensitive() { public TagIndexParams caseSensitive() {
caseSensitive = true; caseSensitive = true;
return this; return this;
} }
@Override
public TagIndexParams noIndex() { public TagIndexParams noIndex() {
noIndex = true; noIndex = true;
return this; return this;
} }
@Override
public TagIndexParams withSuffixTrie() { public TagIndexParams withSuffixTrie() {
withSuffixTrie = true; withSuffixTrie = true;
return this; return this;
} }
@Override
public TagIndexParams indexEmpty() { public TagIndexParams indexEmpty() {
this.indexEmpty = true; this.indexEmpty = true;
return this; return this;
} }
@Override
public TagIndexParams indexMissing() {
this.indexMissing = true;
return this;
}
public String getFieldName() { public String getFieldName() {
return fieldName; return fieldName;
} }
@ -105,5 +119,9 @@ public final class TagIndexParams implements TagIndex {
return indexEmpty; return indexEmpty;
} }
public boolean isIndexMissing() {
return indexMissing;
}
} }

@ -84,4 +84,11 @@ public interface TextIndex extends FieldIndex {
*/ */
TextIndex indexEmpty(); 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 boolean withSuffixTrie;
private Double weight; private Double weight;
private boolean indexEmpty; private boolean indexEmpty;
private boolean indexMissing;
TextIndexParams(String name) { TextIndexParams(String name) {
this.fieldName = name; this.fieldName = name;
} }
@Override
public TextIndexParams as(String as) { public TextIndexParams as(String as) {
this.as = as; this.as = as;
return this; return this;
} }
@Override
public TextIndexParams sortMode(SortMode sortMode) { public TextIndexParams sortMode(SortMode sortMode) {
this.sortMode = sortMode; this.sortMode = sortMode;
return this; return this;
} }
@Override
public TextIndexParams noStem() { public TextIndexParams noStem() {
noStem = true; noStem = true;
return this; return this;
} }
@Override
public TextIndexParams noIndex() { public TextIndexParams noIndex() {
noIndex = true; noIndex = true;
return this; return this;
} }
@Override
public TextIndexParams withSuffixTrie() { public TextIndexParams withSuffixTrie() {
withSuffixTrie = true; withSuffixTrie = true;
return this; return this;
} }
@Override
public TextIndexParams phonetic(PhoneticMatcher matcher) { public TextIndexParams phonetic(PhoneticMatcher matcher) {
this.matcher = matcher; this.matcher = matcher;
return this; return this;
} }
@Override
public TextIndexParams weight(Double weight) { public TextIndexParams weight(Double weight) {
this.weight = weight; this.weight = weight;
return this; return this;
} }
@Override
public TextIndexParams indexEmpty() { public TextIndexParams indexEmpty() {
this.indexEmpty = true; this.indexEmpty = true;
return this; return this;
} }
@Override
public TextIndexParams indexMissing() {
this.indexMissing = true;
return this;
}
public String getFieldName() { public String getFieldName() {
return fieldName; return fieldName;
} }
@ -112,4 +127,7 @@ public final class TextIndexParams implements TextIndex {
return indexEmpty; return indexEmpty;
} }
public boolean isIndexMissing() {
return indexMissing;
}
} }

Loading…
Cancel
Save