You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2020/12/23 03:51:20 UTC

[james-project] 06/10: MAILBOX-403 Remove unneeded display sort forFrom, To, Cc, Bcc fields

This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 6acaaa1b88bb52b0a152266298742e75af760f7c
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Dec 22 09:16:54 2020 +0700

    MAILBOX-403 Remove unneeded display sort forFrom, To, Cc, Bcc fields
    
    Functionally unneeded as no protocol actually uses this feature,
    we end up keeping sorting un-analyzed fields in ElasticSearch,
    leading to a minor impact on index size and thus search
    performance.
---
 .../apache/james/mailbox/model/SearchQuery.java    | 14 ----------
 .../elasticsearch/MailboxMappingFactory.java       | 24 ----------------
 .../mailbox/elasticsearch/query/SortConverter.java |  6 ----
 .../lucene/search/LuceneMessageSearchIndex.java    | 10 -------
 .../LuceneMailboxMessageSearchIndexTest.java       | 32 ----------------------
 .../search/LuceneMessageSearchIndexTest.java       |  5 ----
 .../store/search/SimpleMessageSearchIndexTest.java | 10 -------
 .../search/comparator/CombinedComparator.java      |  4 ---
 .../search/AbstractMessageSearchIndexTest.java     | 32 ----------------------
 .../store/search/CombinedComparatorTest.java       | 12 --------
 10 files changed, 149 deletions(-)

diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/SearchQuery.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/SearchQuery.java
index c82f2d6..e3daeeb 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/SearchQuery.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/SearchQuery.java
@@ -139,20 +139,6 @@ public class SearchQuery implements Serializable {
             SentDate,
 
             /**
-             * addr-name of the first "From" address
-             * 
-             * This MUST BE converted to uppercase before doing the sort
-             */
-            DisplayFrom,
-
-            /**
-             * addr-name of the first "To" address
-             * 
-             * This MUST BE converted to uppercase before doing the sort
-             */
-            DisplayTo,
-
-            /**
              * Uid of the message. This is the DEFAULT if no other is specified
              */
             Uid,
diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxMappingFactory.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxMappingFactory.java
index 9d74266..af9e096 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxMappingFactory.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/MailboxMappingFactory.java
@@ -162,12 +162,6 @@ public class MailboxMappingFactory {
                                 .startObject(EMailer.NAME)
                                     .field(TYPE, TEXT)
                                     .field(ANALYZER, KEEP_MAIL_AND_URL)
-                                    .startObject(FIELDS)
-                                        .startObject(RAW)
-                                            .field(TYPE, KEYWORD)
-                                            .field(NORMALIZER, CASE_INSENSITIVE)
-                                        .endObject()
-                                    .endObject()
                                 .endObject()
                                 .startObject(EMailer.ADDRESS)
                                     .field(TYPE, TEXT)
@@ -212,12 +206,6 @@ public class MailboxMappingFactory {
                                 .startObject(EMailer.NAME)
                                     .field(TYPE, TEXT)
                                     .field(ANALYZER, KEEP_MAIL_AND_URL)
-                                    .startObject(FIELDS)
-                                        .startObject(RAW)
-                                            .field(TYPE, KEYWORD)
-                                            .field(NORMALIZER, CASE_INSENSITIVE)
-                                        .endObject()
-                                    .endObject()
                                 .endObject()
                                 .startObject(EMailer.ADDRESS)
                                     .field(TYPE, TEXT)
@@ -238,12 +226,6 @@ public class MailboxMappingFactory {
                                 .startObject(EMailer.NAME)
                                     .field(TYPE, TEXT)
                                     .field(ANALYZER, KEEP_MAIL_AND_URL)
-                                    .startObject(FIELDS)
-                                        .startObject(RAW)
-                                            .field(TYPE, KEYWORD)
-                                            .field(NORMALIZER, CASE_INSENSITIVE)
-                                        .endObject()
-                                    .endObject()
                                 .endObject()
                                 .startObject(EMailer.ADDRESS)
                                     .field(TYPE, TEXT)
@@ -264,12 +246,6 @@ public class MailboxMappingFactory {
                                 .startObject(EMailer.NAME)
                                     .field(TYPE, TEXT)
                                     .field(ANALYZER, KEEP_MAIL_AND_URL)
-                                    .startObject(FIELDS)
-                                        .startObject(RAW)
-                                            .field(TYPE, KEYWORD)
-                                            .field(NORMALIZER, CASE_INSENSITIVE)
-                                        .endObject()
-                                    .endObject()
                                 .endObject()
                                 .startObject(EMailer.ADDRESS)
                                     .field(TYPE, TEXT)
diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/SortConverter.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/SortConverter.java
index 0dcc02c..bc19b73 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/SortConverter.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/SortConverter.java
@@ -58,12 +58,6 @@ public class SortConverter {
                 return SortBuilders.fieldSort(JsonMessageConstants.SENT_DATE);
             case Uid :
                 return SortBuilders.fieldSort(JsonMessageConstants.UID);
-            case DisplayFrom:
-                return SortBuilders.fieldSort(JsonMessageConstants.FROM + PATH_SEPARATOR + JsonMessageConstants.EMailer.NAME
-                    + PATH_SEPARATOR + NodeMappingFactory.RAW);
-            case DisplayTo:
-                return SortBuilders.fieldSort(JsonMessageConstants.TO + PATH_SEPARATOR + JsonMessageConstants.EMailer.NAME
-                    + PATH_SEPARATOR + NodeMappingFactory.RAW);
             case Id:
                 return SortBuilders.fieldSort(JsonMessageConstants.MESSAGE_ID);
             default:
diff --git a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
index 0304099..6d76bea 100644
--- a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
+++ b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
@@ -1036,16 +1036,6 @@ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex {
                     return UID_SORT_REVERSE;
                 }
                 return UID_SORT;
-            case DisplayFrom:
-                if (reverse) {
-                    return FIRST_FROM_MAILBOX_DISPLAY_SORT_REVERSE;
-                }
-                return FIRST_FROM_MAILBOX_DISPLAY_SORT;
-            case DisplayTo:
-                if (reverse) {
-                    return FIRST_TO_MAILBOX_DISPLAY_SORT_REVERSE;
-                }
-                return FIRST_TO_MAILBOX_DISPLAY_SORT;
             default:
                 return null;
         }
diff --git a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
index 32813af..5ef86c7 100644
--- a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
+++ b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
@@ -550,38 +550,6 @@ class LuceneMailboxMessageSearchIndexTest {
     }
     
     @Test
-    void sortOnDisplayToShouldReturnWellOrderedResults() throws Exception {
-        SearchQuery query = SearchQuery.allSortedWith(new Sort(SortClause.DisplayTo, Order.NATURAL));
-
-        Stream<MessageUid> result = index.search(session, mailbox, query).toStream();
-        assertThat(result).containsExactly(uid4, uid1, uid3);
-    }
-    
-    @Test
-    void reverseSortOnDisplayToShouldReturnWellOrderedResults() throws Exception {
-        SearchQuery query = SearchQuery.allSortedWith(new Sort(SortClause.DisplayTo, Order.REVERSE));
-
-        Stream<MessageUid> result = index.search(session, mailbox, query).toStream();
-        assertThat(result).containsExactly(uid3, uid1, uid4);
-    }
-    
-    @Test
-    void sortOnDisplayFromShouldReturnWellOrderedResults() throws Exception {
-        SearchQuery query = SearchQuery.allSortedWith(new Sort(SortClause.DisplayFrom, Order.NATURAL));
-
-        Stream<MessageUid> result = index.search(session, mailbox, query).toStream();
-        assertThat(result).containsExactly(uid3, uid4, uid1);
-    }
-    
-    @Test
-    void reverseSortOnDisplayFromShouldReturnWellOrderedResults() throws Exception {
-        SearchQuery query = SearchQuery.allSortedWith(new Sort(SortClause.DisplayFrom, Order.REVERSE));
-
-        Stream<MessageUid> result = index.search(session, mailbox, query).toStream();
-        assertThat(result).containsExactly(uid1, uid4, uid3);
-    }
-    
-    @Test
     void sortOnArrivalDateShouldReturnWellOrderedResults() throws Exception {
         SearchQuery query = SearchQuery.allSortedWith(new Sort(SortClause.Arrival, Order.NATURAL));
 
diff --git a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java
index e31852e..d274a37 100644
--- a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java
+++ b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java
@@ -126,11 +126,6 @@ class LuceneMessageSearchIndexTest extends AbstractMessageSearchIndexTest {
 
     @Disabled("JAMES-1799: ignoring failing test after generalizing ElasticSearch test suite to other mailbox search backends")
     @Override
-    public void sortOnDisplayFromShouldWork() {
-    }
-
-    @Disabled("JAMES-1799: ignoring failing test after generalizing ElasticSearch test suite to other mailbox search backends")
-    @Override
     public void mailsContainsShouldIncludeMailHavingAttachmentsMatchingTheRequest() {
     }
 
diff --git a/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java b/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java
index 34f767c..d29a492 100644
--- a/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java
+++ b/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java
@@ -127,11 +127,6 @@ class SimpleMessageSearchIndexTest extends AbstractMessageSearchIndexTest {
 
     @Disabled("JAMES-1799: ignoring failing test after generalizing ElasticSearch test suite to other mailbox search backends")
     @Override
-    public void sortOnDisplayToShouldWork() {
-    }
-
-    @Disabled("JAMES-1799: ignoring failing test after generalizing ElasticSearch test suite to other mailbox search backends")
-    @Override
     public void flagIsUnSetShouldReturnUidOfMessageNotMarkedAsRecentWhenUsedWithFlagRecent() {
     }
 
@@ -157,11 +152,6 @@ class SimpleMessageSearchIndexTest extends AbstractMessageSearchIndexTest {
 
     @Disabled("JAMES-1799: ignoring failing test after generalizing ElasticSearch test suite to other mailbox search backends")
     @Override
-    public void sortOnDisplayFromShouldWork() {
-    }
-
-    @Disabled("JAMES-1799: ignoring failing test after generalizing ElasticSearch test suite to other mailbox search backends")
-    @Override
     public void revertSortingShouldReturnElementsInAReversedOrder() {
     }
 
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/CombinedComparator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/CombinedComparator.java
index cb44353..849f2e9 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/CombinedComparator.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/CombinedComparator.java
@@ -66,10 +66,6 @@ public class CombinedComparator implements Comparator<MailboxMessage> {
                 return MessageComparators.UID_COMPARATOR;
             case SentDate:
                 return SentDateComparator.SENTDATE;
-            case DisplayFrom:
-                return HeaderDisplayComparator.FROM_COMPARATOR;
-            case DisplayTo:
-                return HeaderDisplayComparator.TO_COMPARATOR;
             case Id:
                 return MessageComparators.MESSAGE_ID_COMPARATOR;
             default:
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
index 5cc5dba..30f1ac1 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
@@ -1268,38 +1268,6 @@ public abstract class AbstractMessageSearchIndexTest {
     }
 
     @Test
-    protected void sortOnDisplayFromShouldWork() throws Exception {
-        SearchQuery.UidRange[] numericRanges = {new SearchQuery.UidRange(m2.getUid(), m5.getUid())};
-        SearchQuery searchQuery = SearchQuery.builder()
-            .andCriteria(SearchQuery.uid(numericRanges))
-            .sorts(new Sort(SortClause.DisplayFrom))
-            .build();
-
-        assertThat(messageSearchIndex.search(session, mailbox, searchQuery).toStream())
-            .containsExactly(m4.getUid(), m3.getUid(), m5.getUid(), m2.getUid());
-        // 2 : Tellier Benoit (JIRA)
-        // 3 : efij
-        // 4 : abcd
-        // 5 : Eric Charles (JIRA)
-    }
-
-    @Test
-    void sortOnDisplayToShouldWork() throws Exception {
-        SearchQuery.UidRange[] numericRanges = {new SearchQuery.UidRange(m2.getUid(), m5.getUid())};
-        SearchQuery searchQuery = SearchQuery.builder()
-            .andCriteria(SearchQuery.uid(numericRanges))
-            .sorts(new Sort(SortClause.DisplayTo))
-            .build();
-
-        assertThat(messageSearchIndex.search(session, mailbox, searchQuery).toStream())
-            .containsExactly(m3.getUid(), m2.getUid(), m4.getUid(), m5.getUid());
-        // 2 : abc
-        // 3 : aaa
-        // 4 : server
-        // 5 : zzz
-    }
-
-    @Test
     void sortOnSentDateShouldWork() throws Exception {
         SearchQuery.UidRange[] numericRanges = {new SearchQuery.UidRange(m2.getUid(), m5.getUid())};
         SearchQuery searchQuery = SearchQuery.builder()
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/CombinedComparatorTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/CombinedComparatorTest.java
index 07f511f..79aade8 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/CombinedComparatorTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/CombinedComparatorTest.java
@@ -105,18 +105,6 @@ class CombinedComparatorTest {
     }
 
     @Test
-    void createShouldConvertDisplayTo() {
-        assertThat(CombinedComparator.create(ImmutableList.of(new Sort(SortClause.DisplayTo))).getComparators())
-            .containsOnly(HeaderDisplayComparator.TO_COMPARATOR);
-    }
-
-    @Test
-    void createShouldConvertDisplayFrom() {
-        assertThat(CombinedComparator.create(ImmutableList.of(new Sort(SortClause.DisplayFrom))).getComparators())
-            .containsOnly(HeaderDisplayComparator.FROM_COMPARATOR);
-    }
-
-    @Test
     void createShouldConvertId() {
         assertThat(CombinedComparator.create(ImmutableList.of(new Sort(SortClause.Id))).getComparators())
             .containsOnly(MessageComparators.MESSAGE_ID_COMPARATOR);


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org