簡體   English   中英

如何通過 IMAP 全文搜索進行搜索?

[英]How to search over IMAP full text search?

我正在開發微服務,我必須在 IMAP 服務器上實現全文搜索。 我們將郵件存儲在文檔中。 在實現全文搜索時,連接到 IMAP 花費了太多時間並且服務器請求超時。 我使用的是 IMAP 中可用的 match() 方法。

@Override
public boolean match(Message message) {
    try {
        Address[] fromAddress = message.getFrom();
        if (fromAddress != null && fromAddress.length > 0) {
            if (fromAddress[0].toString().contains(fromEmail)) {
                return true;
            }
        }
    } catch (MessagingException ex) {
        ex.printStackTrace();
    }
     
    return false;
}

我使用以下文章作為參考( https://www.codejava.net/java-ee/javamail/using-javamail-for-searching-e-mail-messages )。

這花費了太多時間來搜索。 有沒有人知道如何在不丟失連接的情況下減少時間並獲得結果?

注意:我們已經對我們的文檔進行了索引,因此我們可以快速搜索。

因此,在互聯網上漫游后,我發現 IMAP 不是用於搜索大量數據的好主意。 我每分鍾可以搜索 600-800 條記錄。 但它不是很快,無法滿足我的需求。

因此,為了搜索大量數據,我們切換到 Solr Server。 這是非常快的。 Apache Solr 服務器 為了與 Java 連接,它有一個客戶端庫 SolrJ。

>   <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-solrj</artifactId>
            <version>6.4.0</version>
    </dependency>

但是你不能同時使用執行器依賴和 solrJ。 您需要為此明確提供配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM