Skip to content
Snippets Groups Projects

feat(index): new WILDCARD SearchConditionType to allow searching on exact...

Merged Nicolas.Rod requested to merge rodn-index-implement-wildcard-search-condition into master
2 files
+ 14
2
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -268,6 +268,8 @@ public abstract class ElasticsearchService<T extends IndexMetadata> extends Inde
builder = this.getMatchQueryBuilder(condition);
} else if (condition.getType() == SearchConditionType.TERM) {
builder = this.getTermQueryBuilder(condition);
} else if (condition.getType() == SearchConditionType.WILDCARD) {
builder = this.getWildcardQueryBuilder(condition);
} else if (condition.getType() == SearchConditionType.RANGE) {
builder = this.getRangeQueryBuilder(condition);
} else if (condition.getType() == SearchConditionType.QUERY) {
@@ -316,6 +318,15 @@ public abstract class ElasticsearchService<T extends IndexMetadata> extends Inde
}
}
private QueryBuilder getWildcardQueryBuilder(SearchCondition condition) {
if (!StringTool.isNullOrEmpty(condition.getField()) && !StringTool.isNullOrEmpty(condition.getValue())) {
// 'wildcard' query
return QueryBuilders.wildcardQuery(condition.getField(), condition.getValue());
} else {
throw new SolidifyRuntimeException("Invalid 'wildcard' search condition");
}
}
private QueryBuilder getRangeQueryBuilder(SearchCondition condition) {
if (StringTool.isNullOrEmpty(condition.getLowerValue()) && StringTool.isNullOrEmpty(condition.getUpperValue())) {
throw new SolidifyRuntimeException("Invalid 'range' search condition");
Loading