Author: btellier
Date: Mon Jun 29 08:37:39 2015
New Revision: 1688136
URL: http://svn.apache.org/r1688136
Log:
MAILBOX-234 ElasticSearch project creation - patch contributed by Antoine Duprat
Modified:
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/CriterionConverter.java
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
Modified:
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/CriterionConverter.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/CriterionConverter.java?rev=1688136&r1=1688135&r2=1688136&view=diff
==============================================================================
---
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/CriterionConverter.java
(original)
+++
james/mailbox/trunk/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/CriterionConverter.java
Mon Jun 29 08:37:39 2015
@@ -60,17 +60,13 @@ public class CriterionConverter {
registerCriterionConverter(SearchQuery.ConjunctionCriterion.class,
this::convertConjunction);
registerCriterionConverter(SearchQuery.InternalDateCriterion.class,
this::convertInternalDate);
registerCriterionConverter(SearchQuery.HeaderCriterion.class,
this::convertHeader);
+ registerCriterionConverter(SearchQuery.TextCriterion.class,
this::convertTextCriterion);
registerCriterionConverter(
SearchQuery.AllCriterion.class,
criterion ->
FilteredQueryRepresentation.fromQuery(matchAllQuery()));
registerCriterionConverter(
- SearchQuery.TextCriterion.class,
- criterion -> FilteredQueryRepresentation.fromQuery(
- matchQuery(JsonMessageConstants.TEXT_BODY,
criterion.getOperator().getValue())));
-
- registerCriterionConverter(
SearchQuery.ModSeqCriterion.class,
criterion -> createNumericFilter(JsonMessageConstants.MODSEQ,
criterion.getOperator()));
@@ -121,6 +117,22 @@ public class CriterionConverter {
return
criterionConverterMap.get(criterion.getClass()).apply(criterion);
}
+
+ private FilteredQueryRepresentation
convertTextCriterion(SearchQuery.TextCriterion textCriterion) {
+ switch (textCriterion.getType()) {
+ case BODY:
+ return FilteredQueryRepresentation.fromQuery(
+ matchQuery(JsonMessageConstants.TEXT_BODY,
textCriterion.getOperator().getValue()));
+ case FULL:
+ return FilteredQueryRepresentation.fromQuery(
+ boolQuery()
+ .should(matchQuery(JsonMessageConstants.TEXT_BODY,
textCriterion.getOperator().getValue()))
+ .should(matchQuery(JsonMessageConstants.ATTACHMENTS + "."
+ JsonMessageConstants.Attachment.TEXT_CONTENT,
+ textCriterion.getOperator().getValue())));
+ }
+ throw new RuntimeException("Unknown SCOPE for text criterion");
+ }
+
private FilteredQueryRepresentation
convertInternalDate(SearchQuery.InternalDateCriterion dateCriterion) {
SearchQuery.DateOperator dateOperator = dateCriterion.getOperator();
return dateRangeFilter(JsonMessageConstants.DATE, dateOperator);
Modified:
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java?rev=1688136&r1=1688135&r2=1688136&view=diff
==============================================================================
---
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
(original)
+++
james/mailbox/trunk/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java
Mon Jun 29 08:37:39 2015
@@ -512,4 +512,12 @@ public class ElasticSearchIntegrationTes
.containsOnly(4L, 9L);
}
+ @Test
+ public void
mailsContainsShouldIncludeMailHavingAttachmentsMatchingTheRequest() throws
Exception {
+ SearchQuery searchQuery = new SearchQuery();
+ searchQuery.andCriteria(SearchQuery.mailContains("root mailing list"));
+ assertThat(elasticSearchListeningMessageSearchIndex.search(session,
mailbox, searchQuery))
+ .containsOnly(1L, 6L);
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]