private String key;
private String query;
private String characteristicKey;
- private String subCharacteristicKey;
private int pageSize;
private int pageIndex;
private RuleQuery(Builder builder) {
this.key = builder.key;
this.query = builder.query;
- this.subCharacteristicKey = builder.subCharacteristicKey;
this.characteristicKey = builder.characteristicKey;
this.pageSize = builder.pageSize;
this.pageIndex = builder.pageIndex;
return characteristicKey;
}
- @CheckForNull
- public String subCharacteristicKey() {
- return subCharacteristicKey;
- }
-
public int pageSize() {
return pageSize;
}
private String key;
private String query;
private String characteristicKey;
- private String subCharacteristicKey;
private Integer pageSize;
private Integer pageIndex;
return this;
}
- public Builder subCharacteristicKey(@Nullable String subCharacteristicKey) {
- this.subCharacteristicKey = subCharacteristicKey;
- return this;
- }
-
public Builder pageSize(@Nullable Integer pageSize) {
this.pageSize = pageSize;
return this;
QueryBuilders.multiMatchQuery(query.query(), RuleDocument.FIELD_NAME + ".search", RuleDocument.FIELD_KEY).operator(Operator.AND)));
}
if (query.characteristicKey() != null) {
- mainFilter.must(termFilter(RuleDocument.FIELD_CHARACTERISTIC_KEY, query.characteristicKey()));
- }
- if (query.subCharacteristicKey() != null) {
- mainFilter.must(termFilter(RuleDocument.FIELD_SUB_CHARACTERISTIC_KEY, query.subCharacteristicKey()));
+ mainFilter.must(FilterBuilders.queryFilter(
+ QueryBuilders.multiMatchQuery(query.characteristicKey(), RuleDocument.FIELD_CHARACTERISTIC_KEY, RuleDocument.FIELD_SUB_CHARACTERISTIC_KEY).operator(Operator.OR))
+ );
}
Paging paging = Paging.create(query.pageSize(), query.pageIndex());
SearchHits hits = searchIndex.executeRequest(
}
@Test
- public void find_rules_by_characteristic_and_sub_characteristic() {
+ public void find_rules_by_characteristic_or_sub_characteristic() {
Map<Integer, CharacteristicDto> characteristics = newHashMap();
characteristics.put(10, new CharacteristicDto().setId(10).setKey("REUSABILITY").setName("Reusability"));
characteristics.put(11, new CharacteristicDto().setId(11).setKey("MODULARITY").setName("Modularity").setParentId(10));
registry.bulkRegisterRules(rules, characteristics, ArrayListMultimap.<Integer, RuleParamDto>create(),
ArrayListMultimap.<Integer, RuleRuleTagDto>create());
- assertThat(registry.find(RuleQuery.builder().subCharacteristicKey("MODULARITY").build()).results()).hasSize(1);
- assertThat(registry.find(RuleQuery.builder().subCharacteristicKey("REUSABILITY").build()).results()).isEmpty();
- assertThat(registry.find(RuleQuery.builder().subCharacteristicKey("Unknown").build()).results()).isEmpty();
-
+ assertThat(registry.find(RuleQuery.builder().characteristicKey("MODULARITY").build()).results()).hasSize(1);
assertThat(registry.find(RuleQuery.builder().characteristicKey("REUSABILITY").build()).results()).hasSize(1);
- assertThat(registry.find(RuleQuery.builder().characteristicKey("MODULARITY").build()).results()).isEmpty();
assertThat(registry.find(RuleQuery.builder().characteristicKey("Unknown").build()).results()).isEmpty();
}