国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Elasticsearch實(shí)戰(zhàn)之處理郵件附件進(jìn)行進(jìn)行內(nèi)容全文檢索

這篇具有很好參考價(jià)值的文章主要介紹了Elasticsearch實(shí)戰(zhàn)之處理郵件附件進(jìn)行進(jìn)行內(nèi)容全文檢索。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

一、系統(tǒng)環(huán)境和軟件要求

二、軟件說(shuō)明

三、定義文本抽取管道(pipeline)

四、建立索引設(shè)置文檔結(jié)構(gòu)映射

五、插入文檔

六、查詢文檔


需求是將本地郵件內(nèi)容以及PDF,EXCEL,WORD等附件內(nèi)容進(jìn)行處理,保存到ES數(shù)據(jù)庫(kù),實(shí)現(xiàn)郵件內(nèi)容及附件內(nèi)容的全文檢索。

一、系統(tǒng)環(huán)境和軟件要求

系統(tǒng):CentOS7.3

elasticsearch版本:7.13.3

kibana版本:7.16.3

ingest-attachment插件版本:7.13.3

二、軟件說(shuō)明

Kibana是一個(gè)開(kāi)源的分析和可視化平臺(tái),設(shè)計(jì)用于和Elasticsearch一起工作。當(dāng)前我們的用途主要是在kibana的開(kāi)發(fā)工具dev tools中執(zhí)行一些命令。

Ingest-Attachment是一個(gè)開(kāi)箱即用的插件??梢詫⒊S酶袷降奈募鳛楦郊?xiě)入Index。ingest attachment插件通過(guò)使用Apache Tika來(lái)提取文件,支持的文件格式有TXT、DOC、PPT、XLS和PDF等。 可以進(jìn)行文本抽取及自動(dòng)導(dǎo)入。注意:源字段必須是base64編碼的二進(jìn)制。

缺點(diǎn):在處理xls和xlsx格式的時(shí)候,無(wú)法將sheet分開(kāi)索引,只能將整個(gè)文件當(dāng)做一個(gè)文檔插入es中。

三、安裝插件

我這里采用離線方式安裝Ingest-Attachment,通過(guò)wget方式直接下載跟elasticsearch版本相同的離線文件。

wget https://artifacts.elastic.co/downloads/elasticsearch-plugins/ingest-attachment/ingest-attachment-7.13.3.zip

上傳到服務(wù)器 目錄

/home/es/install/ingest-attachment-7.13.3.zip

進(jìn)入ES_HOME的主目錄,執(zhí)行下面的命令進(jìn)行安裝

cd /home/elasticsearch/

./bin/elasticsearch-plugin install file:///home/es/install/ingest-attachment-7.13.3.zip

安裝完成后重啟elasticsearch服務(wù)

插件安裝完成!

三、定義文本抽取管道(pipeline)

在kibana的dev tool執(zhí)行

我這里郵件可能是多個(gè)附件,所以定義文本抽取管道(多附件),我這里是設(shè)置 處理后移除base64的二進(jìn)制數(shù)據(jù)。

需要注意的是,多附件的情況下,field和target_field必須要寫(xiě)成_ingest._value.*,否則不能匹配正確的字段。

PUT _ingest/pipeline/multiple_attachment
{
? ? "description" : "Extract attachment information from arrays",
? ? "processors" : [
? ? ? {
? ? ? ? "foreach" : {
? ? ? ? ? "field" : "attachments",
? ? ? ? ? "processor" : {
? ? ? ? ? ? "attachment" : {
? ? ? ? ? ? ? "target_field" : "_ingest._value.attachment",
? ? ? ? ? ? ? "field" : "_ingest._value.content"
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? ? },
? ? ? {
? ? ? ? "foreach" : {
? ? ? ? ? "field" : "attachments",
? ? ? ? ? "processor" : {
? ? ? ? ? ? "remove" : {
? ? ? ? ? ? ? "field" : "_ingest._value.content"
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? ? }
? ? ]
}

插件ingest attachment的pipeline參數(shù)含義

Name 是否必須 Default Description
field yes - 從這個(gè)字段中獲取base64編碼
target_field no attachment 用于保留attachment信息,主要用于多附件的情況
indexed_chars no 100000 限制字段的最大保存字符數(shù)。-1為無(wú)限制。
indexed_chars_field no - 可以從數(shù)據(jù)中設(shè)定的字段取到indexed_chars限制的值。
properties no 全屬性 選擇需要存儲(chǔ)的屬性。例如?content,?title,?name,?author,?keywords,?date,?content_type,?content_length,?language
ignore_missing no FALSE 如果使用true,并且?field?不存在, 則會(huì)忽略附件直接寫(xiě)入doc;否則則會(huì)報(bào)錯(cuò)。

四、建立索引設(shè)置文檔結(jié)構(gòu)映射

PUT mail
{
  "settings": {
    "index": {
      "max_result_window": 100000000
    },
    "number_of_shards": 3,
    "number_of_replicas": 0
  },
  "mappings": {
    "properties": {
      "mfrom": {
        "type": "keyword"
      },
      "mto": {
        "type": "keyword"
      },
      "mcc": {
        "type": "keyword"
      },
      "mbcc": {
        "type": "keyword"
      },
      "rcvtime": {
        "type": "date",
        "format": "yyyy-MM-dd HH:mm:ss"
      },
      "subject": {
        "type": "keyword"
      },
      "importance": {
        "type": "keyword"
      },
      "savepath": {
        "type": "keyword"
      },
      "mbody": {
        "type": "text",
        "fields": {
          "keyword": {
            "ignore_above": 256,
            "type": "keyword"
          }
        }
      },
      "attachments": {
        "properties": {
          "attachment": {
            "properties": {
              "content": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "ignore_above": 256,
                    "type": "keyword"
                  }
                }
              },
              "filename": {
                "type": "keyword"
              },
              "type": {
                "type": "keyword"
              }
            }
          }
        }
      }
    }
  }
}

創(chuàng)建成功會(huì)返回

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "mail"
}

五、插入文檔

可以使用Postman來(lái)調(diào)用elasticsearch的rest full接口完成文檔插入或者更新。

請(qǐng)求類型:POST
請(qǐng)求地址:http://192.168.31.200:9200/mail/_doc?pipeline=multiple_attachment

請(qǐng)求地址中mail是索引名,pipeline=multiple_attachment指定需要使用的管道(pipeline)是multiple_attachment

請(qǐng)求body內(nèi)容是JSON格式:

{
    "mfrom": "microsoft.teams@outlook.com",
    "mto": "network@163.com",
    "mcc": "",
    "mbcc": "",
    "rcvtime": "2023-05-18 23:35:29",
    "subject": "神奇的郵件2023066- ",
    "importance": "1",
    "savepath": "d:\\mail\\TEST123.eml",
    "mbody": "這是郵件內(nèi)容",
     "attachments": [
        {
            "filename": "附件名字1.pdf",
            "type": ".pdf",
            "content": "5oiR54ix5L2g5Lit5Zu9MjAyMw=="
        },
        {
            "filename": "附件名字2.xlsx",
            "type": ".xlsx",
            "content": "Q2hhdEdQVCDniZvpgLwh"
        }
    ]
}

attachments是JSON數(shù)組,里面放2個(gè)附件的信息。filename是附件名字,content是附件解析出來(lái)的base64編碼字符串。插入時(shí)通過(guò)管道處理,會(huì)自動(dòng)識(shí)別內(nèi)容,剩下的跟操作普通的索引一樣。

下面是執(zhí)行成功返回的內(nèi)容:

{
    "_index": "mail",
    "_type": "_doc",
    "_id": "eiCNNIgBUc2qXUv978Tg",
    "_version": 1,
    "result": "created",
    "_shards": {
        "total": 1,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 0,
    "_primary_term": 1
}

Postman截圖

Elasticsearch實(shí)戰(zhàn)之處理郵件附件進(jìn)行進(jìn)行內(nèi)容全文檢索,Elasticsearch,elasticsearch,大數(shù)據(jù),搜索引擎

六、查詢文檔

6.1 根據(jù)_id查看文檔

GET請(qǐng)求地址?http://192.168.31.200:9200/mail/_doc/eiCNNIgBUc2qXUv978Tg

參數(shù)和內(nèi)容無(wú)

其中eiCNNIgBUc2qXUv978Tg為文檔_id,mail為需要查詢的索引名

返回結(jié)果:

{
    "_index": "mail",
    "_type": "_doc",
    "_id": "eiCNNIgBUc2qXUv978Tg",
    "_version": 1,
    "_seq_no": 0,
    "_primary_term": 1,
    "found": true,
    "_source": {
        "savepath": "d:\\mail\\TEST123.eml",
        "mbody": "這是郵件內(nèi)容",
        "attachments": [
            {
                "filename": "附件名字1.pdf",
                "attachment": {
                    "content_type": "text/plain; charset=UTF-8",
                    "language": "lt",
                    "content": "我愛(ài)你中國(guó)2023",
                    "content_length": 10
                },
                "type": ".pdf"
            },
            {
                "filename": "附件名字2.xlsx",
                "attachment": {
                    "content_type": "text/plain; charset=UTF-8",
                    "language": "lt",
                    "content": "ChatGPT 牛逼!",
                    "content_length": 12
                },
                "type": ".pdf"
            }
        ],
        "mbcc": "",
        "subject": "神奇的郵件2023066- ",
        "importance": "1",
        "mfrom": "microsoft.teams@outlook.com",
        "mto": "network@163.com",
        "mcc": "",
        "rcvtime": "2023-05-18 23:35:29"
    }
}

Postman截圖

Elasticsearch實(shí)戰(zhàn)之處理郵件附件進(jìn)行進(jìn)行內(nèi)容全文檢索,Elasticsearch,elasticsearch,大數(shù)據(jù),搜索引擎

6.2 模糊查詢附件名字

Post請(qǐng)求地址??http://192.168.31.200:9200/mail/_search

?請(qǐng)求內(nèi)容是JSON字符串,attachments.filename.keyword是附件名字(不分詞)

{
  "query": {
        "bool": {
            "should": [{
                "wildcard": {
                    "attachments.filename.keyword": "*附件*"
                  
                }
            }]
        }
    }
}

返回結(jié)果

{
    "took": 2,
    "timed_out": false,
    "_shards": {
        "total": 3,
        "successful": 3,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 1,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "mail",
                "_type": "_doc",
                "_id": "eiCNNIgBUc2qXUv978Tg",
                "_score": 1.0,
                "_source": {
                    "savepath": "d:\\mail\\TEST123.eml",
                    "mbody": "這是郵件內(nèi)容",
                    "attachments": [
                        {
                            "filename": "附件名字1.pdf",
                            "attachment": {
                                "content_type": "text/plain; charset=UTF-8",
                                "language": "lt",
                                "content": "我愛(ài)你中國(guó)2023",
                                "content_length": 10
                            },
                            "type": ".pdf"
                        },
                        {
                            "filename": "附件名字2.xlsx",
                            "attachment": {
                                "content_type": "text/plain; charset=UTF-8",
                                "language": "lt",
                                "content": "ChatGPT 牛逼!",
                                "content_length": 12
                            },
                            "type": ".pdf"
                        }
                    ],
                    "mbcc": "",
                    "subject": "神奇的郵件2023066- ",
                    "importance": "1",
                    "mfrom": "microsoft.teams@outlook.com",
                    "mto": "network@163.com",
                    "mcc": "",
                    "rcvtime": "2023-05-18 23:35:29"
                }
            }
        ]
    }
}

6.3 模糊查詢附件內(nèi)容

POST請(qǐng)求地址?http://192.168.31.200:9200/mail/_search

請(qǐng)求內(nèi)容為JSON格式,attachments.attachment.content是附件內(nèi)容(不加密)

{
    "size":"10000",
    "_source" :[
        "_id",
        "seqnbr",
        "subject",
        "eml"
    ],
    "query": {
    "match": {
      "attachments.attachment.content":"*ChatGPT*"
    }
  }
}

返回結(jié)果

{
    "took": 1,
    "timed_out": false,
    "_shards": {
        "total": 3,
        "successful": 3,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 1,
            "relation": "eq"
        },
        "max_score": 0.2876821,
        "hits": [
            {
                "_index": "mail",
                "_type": "_doc",
                "_id": "eiCNNIgBUc2qXUv978Tg",
                "_score": 0.2876821,
                "_source": {
                    "subject": "神奇的郵件2023066- "
                }
            }
        ]
    }
}

七、其他說(shuō)明


下面是單獨(dú)說(shuō)明的定義文本抽取的管道single_attachment

在kibana的dev tool執(zhí)行

PUT _ingest/pipeline/single_attachment

{
? "description" : "Extract single attachment information",
? "processors" : [
? ? {
? ? ? "attachment" : {
? ? ? ? "field": "data",
? ? ? ? "indexed_chars" : -1,
? ? ? ? "ignore_missing" : true
? ? ? }
? ? }
? ]
}

剩下的就是代碼集成的問(wèn)題了。關(guān)于中文分詞IK插件的使用,后期需要再詳細(xì)說(shuō)明。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-538368.html

到了這里,關(guān)于Elasticsearch實(shí)戰(zhàn)之處理郵件附件進(jìn)行進(jìn)行內(nèi)容全文檢索的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 軟件測(cè)試/測(cè)試開(kāi)發(fā)/全日制|學(xué)習(xí)使用Elasticsearch進(jìn)行全文檢索

    軟件測(cè)試/測(cè)試開(kāi)發(fā)/全日制|學(xué)習(xí)使用Elasticsearch進(jìn)行全文檢索

    霍格沃茲測(cè)試開(kāi)發(fā)學(xué)社推出了《Python全棧開(kāi)發(fā)與自動(dòng)化測(cè)試班》。本課程面向開(kāi)發(fā)人員、測(cè)試人員與運(yùn)維人員,課程內(nèi)容涵蓋Python編程語(yǔ)言、人工智能應(yīng)用、數(shù)據(jù)分析、自動(dòng)化辦公、平臺(tái)開(kāi)發(fā)、UI自動(dòng)化測(cè)試、接口測(cè)試、性能測(cè)試等方向。 為大家提供更全面、更深入、更系統(tǒng)

    2024年01月21日
    瀏覽(22)
  • 大文本的全文檢索方案附件索引

    大文本的全文檢索方案附件索引

    Elasticsearch 附件索引是需要插件支持的功能,它允許將文件內(nèi)容附加到 Elasticsearch 文檔中,并對(duì)這些附件內(nèi)容進(jìn)行全文檢索。本文將帶你了解索引附件的原理和使用方法,并通過(guò)一個(gè)實(shí)際示例來(lái)說(shuō)明如何在 Elasticsearch 中索引和檢索文件附件。 索引附件的核心原理是通過(guò) Inges

    2024年02月12日
    瀏覽(20)
  • 使用Elasticsearch進(jìn)行word,excel,PDF的全文檢索 windows實(shí)現(xiàn) 超完整(ingest-attachment實(shí)現(xiàn))

    使用Elasticsearch進(jìn)行word,excel,PDF的全文檢索 windows實(shí)現(xiàn) 超完整(ingest-attachment實(shí)現(xiàn))

    首先要明確的一點(diǎn)就是Elasticsearch的版本要和ingest-attachment的版本一致,要不然沒(méi)辦法安裝。然后還有一點(diǎn)JAVA版本要在11以上 先說(shuō)說(shuō)原理吧,其實(shí)就是將文件base64編碼,然后再用插件讀取文件內(nèi)容并保存到es中。 安裝完jdk之后用cmd查看一下java -version看看是否已經(jīng)從1.8修改為了

    2024年02月13日
    瀏覽(20)
  • Spring Boot郵件發(fā)送教程:步步為營(yíng),輕松實(shí)現(xiàn)圖片附件郵件!

    Spring Boot郵件發(fā)送教程:步步為營(yíng),輕松實(shí)現(xiàn)圖片附件郵件!

    ? 通過(guò)Spring Boot構(gòu)建一個(gè)功能強(qiáng)大的郵件發(fā)送應(yīng)用程序,重點(diǎn)是實(shí)現(xiàn)發(fā)送包含圖片附件的郵件。我將逐步介紹添加必要的依賴、創(chuàng)建郵件服務(wù)類和控制器的步驟,并提供了具體的示例源代碼。跟隨這個(gè)簡(jiǎn)單而清晰的教程,您將能夠輕松地集成郵件發(fā)送功能到您的Spring Boot應(yīng)用中

    2024年02月04日
    瀏覽(23)
  • 無(wú)緩存定時(shí)發(fā)送帶附件(表格)等郵件

    1.導(dǎo)入發(fā)送郵件的包 2.配置yml 3.添加定時(shí)任務(wù) 4.實(shí)現(xiàn)

    2024年02月11日
    瀏覽(23)
  • Springboot 使用JavaMailSender發(fā)送郵件 + Excel附件

    Springboot 使用JavaMailSender發(fā)送郵件 + Excel附件

    目錄 1.生成Excel表格 1.依賴設(shè)置 2.代碼: 2.郵件發(fā)送 1.郵件發(fā)送功能實(shí)現(xiàn)-帶附件 ?2.踩過(guò)的坑 1.附件名中文亂碼問(wèn)題 3.參考文章: 需求描述:項(xiàng)目審批完畢后,需要發(fā)送郵件通知相關(guān)人員,并且要附帶數(shù)據(jù)庫(kù)表生成的Excel表格,這就要求不光是郵件發(fā)送功能,還要臨時(shí)生成E

    2024年02月07日
    瀏覽(21)
  • python提取郵件的附件,以excel為例

    配置郵箱、讀取基本的郵件內(nèi)容請(qǐng)參考:python讀取并解析郵箱郵件,讀取郵件主題、內(nèi)容、時(shí)間 以excel為例: 獲取郵件: 提取數(shù)據(jù)需要使用: 寫(xiě)入本地文件時(shí),使用:

    2024年02月10日
    瀏覽(20)
  • springboot 發(fā)送郵件,以及郵件工具類 并且解決spring-boot-starter-mail 發(fā)送郵件附件亂碼或者文件錯(cuò)亂

    1、設(shè)置系統(tǒng)值 System.setProperty(“mail.mime.splitlongparameters”, “false”); 2、 在創(chuàng)建對(duì)象的時(shí)候定義編碼格式(utf-8): MimeMessageHelper helper = new MimeMessageHelper(mes, true, “utf-8”); 3、 其次,在添加附件的時(shí)候,附件名是需要定義編碼的 helper.addAttachment(MimeUtility.encodeWord(附件名,“utf-8”

    2024年02月15日
    瀏覽(34)
  • 郵件發(fā)送,附件太大怎么辦 → 那就用分卷壓縮吧

    郵件發(fā)送,附件太大怎么辦 → 那就用分卷壓縮吧

    昨晚,老婆輔導(dǎo)女兒寫(xiě)作業(yè) 有一道形容媽媽的題,女兒寫(xiě)下了:我媽媽像一個(gè)暴躁的老虎 老婆拿起題冊(cè)輕輕敲了下女兒,生氣到:有這么形容你媽的嗎 女兒:你看你現(xiàn)在 老婆:我有那么暴躁嗎,你就不能說(shuō)我媽媽像一個(gè)公主,溫柔大方漂亮? 女兒:題目讓我造句,沒(méi)讓我

    2024年02月08日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包