Skip to content

Commit

Permalink
Disjunct fields search (#769)
Browse files Browse the repository at this point in the history
 * Fix sub-boolean clause
 * Align non tokenized mechanism to addNotRequiredTextField and addRequiredTextField (no surrounding double quote).
  • Loading branch information
François Prunayre committed Jul 27, 2012
1 parent 6b1103e commit 817be82
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -276,16 +276,16 @@ private BooleanQuery buildORQuery(Map<String, Set<String>> searchCriteria, Boole
}
}
else {
BooleanQuery ooleanQuery = new BooleanQuery();
BooleanQuery orBooleanQuery = new BooleanQuery();
while (st.hasMoreTokens()) {
String token = st.nextToken();
Query subQuery = textFieldToken(token, LuceneIndexField.ANY, similarity);
if (subQuery != null) {
BooleanClause subClause = new BooleanClause(subQuery, tokenOccur);
booleanQuery.add(subClause);
BooleanClause subClause = new BooleanClause(subQuery, occur);
orBooleanQuery.add(subClause);
}
}
anyClause = new BooleanClause(ooleanQuery, tokenOccur);
anyClause = new BooleanClause(orBooleanQuery, tokenOccur);
}
}
if (StringUtils.isNotEmpty(anyClause.toString())) {
Expand All @@ -295,7 +295,7 @@ private BooleanQuery buildORQuery(Map<String, Set<String>> searchCriteria, Boole
else {
if (!_tokenizedFieldSet.contains(fieldName)) {
// TODO : use similarity when needed
TermQuery termQuery = new TermQuery(new Term(fieldName, "\""+fieldValue.trim()+"\""));
TermQuery termQuery = new TermQuery(new Term(fieldName, fieldValue.trim()));
BooleanClause clause = new BooleanClause(termQuery, tokenOccur);
booleanQuery.add(clause);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public void testMoreThanOneORParamSingleValue() {
// build lucene query
Query query = new LuceneQueryBuilder(_tokenizedFieldSet, _numericFieldSet, _analyzer, null).build(lQI);
// verify query
assertEquals("unexpected Lucene query", "+(category:\"yyy\" inspiretheme:\"xxx\" title:xxx any:yyy) +_isTemplate:n", query.toString());
assertEquals("unexpected Lucene query", "+(category:yyy inspiretheme:xxx title:xxx any:yyy) +_isTemplate:n", query.toString());
}

/**
Expand All @@ -109,7 +109,7 @@ public void testSingleORSingleValueAndANDparam() {
// build lucene query
Query query = new LuceneQueryBuilder(_tokenizedFieldSet, _numericFieldSet, _analyzer, null).build(lQI);
// verify query
assertEquals("unexpected Lucene query", "+(inspiretheme:\"xxx\" title:xxx) +_isTemplate:n +any:yyy", query.toString());
assertEquals("unexpected Lucene query", "+(inspiretheme:xxx title:xxx) +_isTemplate:n +any:yyy", query.toString());
}

/**
Expand All @@ -130,7 +130,7 @@ public void testSingleORMultipleValue() {
// build lucene query
Query query = new LuceneQueryBuilder(_tokenizedFieldSet, _numericFieldSet, _analyzer, null).build(lQI);
// verify query
assertEquals("unexpected Lucene query", "+(title:xxx title:zzz any:xxx any:zzz) +_isTemplate:n", query.toString());
assertEquals("unexpected Lucene query", "+(title:xxx title:zzz (+any:xxx +any:zzz)) +_isTemplate:n", query.toString());

}

Expand All @@ -152,7 +152,7 @@ public void testMultiORSingleValue() {
// build lucene query
Query query = new LuceneQueryBuilder(_tokenizedFieldSet, _numericFieldSet, _analyzer, null).build(lQI);
// verify query
assertEquals("unexpected Lucene query", "+(title:xxx inspiretheme:\"xxx\" any:xxx) +_isTemplate:n", query.toString());
assertEquals("unexpected Lucene query", "+(title:xxx inspiretheme:xxx any:xxx) +_isTemplate:n", query.toString());
}


Expand All @@ -174,7 +174,7 @@ public void testMultiORMultipleValue() {
// build lucene query
Query query = new LuceneQueryBuilder(_tokenizedFieldSet, _numericFieldSet, _analyzer, null).build(lQI);
// verify query
assertEquals("unexpected Lucene query", "+(title:xxx title:zzz inspiretheme:\"xxx zzz\" any:xxx any:zzz) +_isTemplate:n", query.toString());
assertEquals("unexpected Lucene query", "+(title:xxx title:zzz inspiretheme:xxx zzz (+any:xxx +any:zzz)) +_isTemplate:n", query.toString());
}

/**
Expand Down Expand Up @@ -237,7 +237,7 @@ public void testSingleORSingleTokenWithUUID() {
// build lucene query
Query query = new LuceneQueryBuilder(_tokenizedFieldSet, _numericFieldSet, _analyzer, null).build(lQI);
// verify query
assertEquals("unexpected Lucene query", "+(title:xxx _uuid:\"xxx\") +_isTemplate:n", query.toString());
assertEquals("unexpected Lucene query", "+(title:xxx _uuid:xxx) +_isTemplate:n", query.toString());
}

/**
Expand Down Expand Up @@ -318,7 +318,7 @@ public void testSingleORMultiValueWithOR() {
// build lucene query
Query query = new LuceneQueryBuilder(_tokenizedFieldSet, _numericFieldSet, _analyzer, null).build(lQI);
// verify query
assertEquals("unexpected Lucene query", "+(title:xxx title:yyy any:xxx any:yyy) +_isTemplate:n", query.toString());
assertEquals("unexpected Lucene query", "+(title:xxx title:yyy (+any:xxx +any:yyy)) +_isTemplate:n", query.toString());
}


Expand Down

0 comments on commit 817be82

Please sign in to comment.