国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

大型電子商務(wù)網(wǎng)站開發(fā)架構(gòu)技能培訓(xùn)學(xué)校

大型電子商務(wù)網(wǎng)站開發(fā)架構(gòu),技能培訓(xùn)學(xué)校,做銷售平臺哪個網(wǎng)站好,如何備份wordpress數(shù)據(jù)庫結(jié)構(gòu)本文所使用的ES集群環(huán)境可在歷史文章中獲取,采用docker部署的方式。 Elasticsearch 是一個功能強大的搜索引擎,廣泛用于構(gòu)建復(fù)雜的全文搜索應(yīng)用程序。在許多情況下,為了提高搜索引擎的性能和精度,我們可以使用外部詞庫來定制和擴展…

本文所使用的ES集群環(huán)境可在歷史文章中獲取,采用docker部署的方式。

Elasticsearch 是一個功能強大的搜索引擎,廣泛用于構(gòu)建復(fù)雜的全文搜索應(yīng)用程序。在許多情況下,為了提高搜索引擎的性能和精度,我們可以使用外部詞庫來定制和擴展 Elasticsearch 的文本處理和搜索功能。本文將介紹外部詞庫的用途、優(yōu)勢以及如何在 Elasticsearch 中使用它們。

為什么需要外部詞庫?

Elasticsearch 默認(rèn)提供了一套強大的文本處理工具,包括分詞、標(biāo)記過濾、同義詞處理等。然而,在某些情況下,我們需要更多的控制權(quán)來適應(yīng)特定的用例和需求。外部詞庫允許我們:

  1. 自定義分詞器:通過使用外部詞庫,您可以創(chuàng)建自定義分詞器,以根據(jù)特定需求定義文本分割規(guī)則。這對于處理不同語言或行業(yè)的文本非常有用。

  2. 擴展停用詞列表:停用詞(如and、the等)通常被排除在搜索索引之外。外部詞庫允許您將領(lǐng)域特定的停用詞添加到索引中,以便更好地適應(yīng)我們行業(yè)內(nèi)的數(shù)據(jù)。

  3. 同義詞處理:創(chuàng)建同義詞詞庫可確保相關(guān)詞匯在搜索時被正確映射,提高搜索結(jié)果的準(zhǔn)確性。

  4. 專業(yè)術(shù)語:對于特定領(lǐng)域或行業(yè),我們可以通過創(chuàng)建外部詞庫,以包含特定領(lǐng)域的專業(yè)術(shù)語,確保搜索引擎能夠理解和處理這些術(shù)語。

使用外部詞庫的優(yōu)勢

使用外部詞庫有以下優(yōu)勢:

  1. 提高搜索質(zhì)量:通過自定義分詞和停用詞,可以確保搜索引擎更好地理解和處理文本,提高搜索質(zhì)量。

  2. 適應(yīng)特定需求:外部詞庫允許根據(jù)特定用例和領(lǐng)域需求對搜索引擎進行定制,以滿足工作要求。

  3. 更好的用戶體驗:通過包含專業(yè)術(shù)語和擴展的同義詞映射,用戶能夠更輕松地找到他們需要的內(nèi)容。

如何在 Elasticsearch 中使用外部詞庫

在 Elasticsearch 中使用外部詞庫通常涉及以下步驟:

  1. 創(chuàng)建外部詞庫文件:首先,我們需要準(zhǔn)備一個外部詞庫文件,其中包含自定義的詞匯、同義詞或停用詞列表。

  2. 將詞庫上傳到 Elasticsearch:上傳詞庫文件到 Elasticsearch

  3. 配置索引:將外部詞庫與索引相關(guān)聯(lián),以確保 Elasticsearch 在索引文檔時使用這些詞匯。

  4. 搜索優(yōu)化:根據(jù)需要在搜索查詢中應(yīng)用外部詞庫,以擴展或定制搜索行為。

示例:使用自定義詞庫分詞

本文在 IK 分詞器的基礎(chǔ)上增加自定義分詞,并配置本地詞庫文件,遠程熱更新詞庫文件。

本地詞庫

  • 首先在啟動的ES中對醉魚兩個字進行分詞,IK 默認(rèn)分為兩個漢字

    GET _analyze
    {"analyzer": "ik_max_word","text": ["醉魚"]
    }
    

    結(jié)果如下

    {"tokens" : [{"token" : "醉","start_offset" : 0,"end_offset" : 1,"type" : "CN_CHAR","position" : 0},{"token" : "魚","start_offset" : 1,"end_offset" : 2,"type" : "CN_CHAR","position" : 1}]
    }

    而我們的需求是讓其能分為一次詞語,而不是兩個漢字,那么下面引入我們的自定義分詞文件

  • ESplugins/ik/config 目錄下創(chuàng)建自定義詞庫文件 zuiyu.dic,文件內(nèi)容如下,格式為一個詞語為一行。

    醉魚
    
  • 修改 IK 的配置,支持自定義分詞文件 ,修改plugins/ik/config 目錄下的IKAnalyzer.cfg.xml,修改其中<entry key="ext_dict"></entry>的值,為本地文件路徑,配置為相對路徑,直接填寫上一步創(chuàng)建的zuiyu.dic,結(jié)果如下

    <entry key="ext_dict">zuiyu.dic</entry>

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties><comment>IK Analyzer 擴展配置</comment><!--用戶可以在這里配置自己的擴展字典 --><entry key="ext_dict">zuiyu.dic</entry><!--用戶可以在這里配置自己的擴展停止詞字典--><entry key="ext_stopwords"></entry><!--用戶可以在這里配置遠程擴展字典 --><!--<entry key="remote_ext_dict"></entry>--><!--用戶可以在這里配置遠程擴展停止詞字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> -->
    </properties>
  • 如果是啟動的ES集群,需要復(fù)制當(dāng)前兩個文件到所有的集群中

    1、當(dāng)前集群有三個節(jié)點,其中都配置本地詞庫文件,但是node1node2中都沒有增加醉魚這詞語,只有node3有,此時使用分詞是無法達到預(yù)期效果的。

    2、node1中配置正常的<entry key="ext_dict">zuiyu.dic</entry>zuiyu.dic中也包含醉魚這個詞語。node2node3都不配置ext_dict,此時當(dāng)前這個環(huán)境是可以進行正確分詞,達到預(yù)期的結(jié)果的。

  • 重啟 ES

  • 測試分詞效果,使用同樣的分詞語句

    GET _analyze
    {"analyzer": "ik_max_word","text": ["醉魚"]
    }
    

    結(jié)果如下

    {"tokens" : [{"token" : "醉魚","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 0}]
    }
    

    一般來說,詞語肯定不是固定的,隨著工作的長期積累,不斷地發(fā)現(xiàn)新的專業(yè)術(shù)語,那么熱更新,動態(tài)更新詞庫,不在每次更新詞庫之后重啟ES就是非常有必要的了,下面來看一下熱更新詞庫。

遠程詞庫(熱更新)

熱更新詞庫的區(qū)別就是IKAnalyzer.cfg.xml文件中的一個配置的問題。不過核心還是需要一個詞庫文件,剛才是通過路徑訪問的,但是無法熱更新,所以現(xiàn)在需要改為URL訪問,也就是 HTTP 請求可以讀取到的形式。一個詞語一行返回即可。

此處使用 Nginx 來做演示。Nginx 中的配置如下

  • nginx.conf

            location /dic/zuiyu.dic {alias   html/dic/zuiyu.dic;   }
    
  • zuiyu.dic 文件內(nèi)容如下

    醉魚
    
  • IKAnalyzer.cfg.xml配置修改如下,IP為部署的 NginxIP ,端口也是根據(jù)自己 Nginx 監(jiān)聽的端口修改

    <entry key="remote_ext_dict">http://192.168.30.240:8088/dic/zuiyu.dic</entry>
    

    完整的配置如下

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties><comment>IK Analyzer 擴展配置</comment><!--用戶可以在這里配置自己的擴展字典 --><entry key="ext_dict">zuiyu.dic</entry><!--用戶可以在這里配置自己的擴展停止詞字典--><entry key="ext_stopwords"></entry><!--用戶可以在這里配置遠程擴展字典 --><entry key="remote_ext_dict">http://192.168.30.240:8088/dic/zuiyu.dic</entry><!--用戶可以在這里配置遠程擴展停止詞字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> -->
    </properties>
  • 驗證URL訪問結(jié)果,使用瀏覽器或者postman等工具訪問 http://192.168.30.240:8088/dic/zuiyu.dic 可以返回我們的文件內(nèi)容即可,也是一個詞語一行的形式。

  • 復(fù)制IKAnalyzer.cfg.xml 到集群的每個節(jié)點中

  • 重啟ES

  • 測試對 醉魚 分詞,可以看到與上面本地詞庫時是同樣的效果

    {"tokens" : [{"token" : "醉魚","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 0}]
    }
    
  • 測試對我愛你醉魚進行分詞

    GET _analyze
    {"analyzer": "ik_max_word","text": ["我愛你醉魚"]
    }
    

    結(jié)果如下

    {"tokens" : [{"token" : "我愛你","start_offset" : 0,"end_offset" : 3,"type" : "CN_WORD","position" : 0},{"token" : "愛你","start_offset" : 1,"end_offset" : 3,"type" : "CN_WORD","position" : 1},{"token" : "醉魚","start_offset" : 3,"end_offset" : 5,"type" : "CN_WORD","position" : 2}]
    }
    
  • zuiyu.dic中增加我愛你醉魚,最終的文件內(nèi)容如下

    醉魚
    我愛你醉魚
    
  • 增加完成之后,這5個字已經(jīng)成為一個詞語,分詞結(jié)果如下

    {"tokens" : [{"token" : "我愛你醉魚","start_offset" : 0,"end_offset" : 5,"type" : "CN_WORD","position" : 0},{"token" : "我愛你","start_offset" : 0,"end_offset" : 3,"type" : "CN_WORD","position" : 1},{"token" : "愛你","start_offset" : 1,"end_offset" : 3,"type" : "CN_WORD","position" : 2},{"token" : "醉魚","start_offset" : 3,"end_offset" : 5,"type" : "CN_WORD","position" : 3}]
    }
    

    僅在一個節(jié)點 node1 中配置了遠程詞庫,node2node3 都沒有配置任何的詞庫,此時當(dāng)前環(huán)境無法達到我們的預(yù)期分詞效果

總結(jié)

通過上面我們的試驗,可以發(fā)現(xiàn)結(jié)合 IK分詞器,使用自定義詞庫,可以滿足我們專業(yè)內(nèi)的詞語分詞,實現(xiàn)更好的分詞效果,再加上動態(tài)詞庫的更新,對我們的工作還是很有必要的,配置過程是不是很簡單,下面就趕緊用起來吧。

http://aloenet.com.cn/news/33418.html

相關(guān)文章:

  • python開發(fā)手機網(wǎng)站開發(fā)湖南網(wǎng)站營銷推廣
  • 蘭州網(wǎng)站建設(shè)招聘b2b電子商務(wù)網(wǎng)站
  • 怎么做租房網(wǎng)站營銷失敗案例分析
  • 定制開發(fā)電商網(wǎng)站建設(shè)百度seo和sem的區(qū)別
  • 菏澤正耀網(wǎng)站建設(shè)公司怎么樣長沙網(wǎng)站優(yōu)化價格
  • 集團企業(yè)網(wǎng)站建設(shè)屬于seo網(wǎng)站優(yōu)化
  • 最早做視頻播放網(wǎng)站百度排名優(yōu)化軟件
  • 房屋結(jié)構(gòu)自建設(shè)計 網(wǎng)站app開發(fā)網(wǎng)站
  • 免費空間asp網(wǎng)站seo基礎(chǔ)入門
  • 長沙房地產(chǎn)交易網(wǎng)seo搜索引擎優(yōu)化工具
  • 廣漢網(wǎng)站建設(shè)ghxhwl免費域名注冊服務(wù)網(wǎng)站
  • 重慶網(wǎng)站建站建設(shè)的費用seo最強
  • 做網(wǎng)站可以用別人的身份證嗎網(wǎng)站流量數(shù)據(jù)
  • 天津網(wǎng)站建設(shè)開發(fā)有哪些天津百度網(wǎng)站排名優(yōu)化
  • 伊朗最新消息紹興seo計費管理
  • 博客系統(tǒng)做網(wǎng)站搜索引擎seo關(guān)鍵詞優(yōu)化方法
  • 電子銷售網(wǎng)站模板免費下載百度點擊工具
  • 中國建筑人事部大全合肥正規(guī)的seo公司
  • 住建局領(lǐng)導(dǎo)班子成員分工百度首頁排名優(yōu)化價格
  • 可以做兼職的網(wǎng)站有哪些工作室石家莊網(wǎng)站建設(shè)方案推廣
  • wordpress 做公司網(wǎng)站手游cpa推廣平臺
  • 蘭州疫情風(fēng)險等級石家莊seo網(wǎng)站排名
  • wordpress去掉作者信息seo網(wǎng)站優(yōu)化平臺
  • 長沙做旅游網(wǎng)站公司預(yù)測2025年網(wǎng)絡(luò)營銷的發(fā)展
  • 莆田有哪幾家做網(wǎng)站設(shè)計關(guān)鍵詞優(yōu)化搜索排名
  • 頁面設(shè)計制作網(wǎng)站源碼百度優(yōu)化是什么
  • 咸陽營銷型網(wǎng)站建設(shè)泉州全網(wǎng)營銷優(yōu)化
  • 網(wǎng)站轉(zhuǎn)化附子seo教程
  • js 網(wǎng)站測速千鋒教育地址
  • 有沒有幫人做數(shù)學(xué)題的網(wǎng)站企業(yè)宣傳文案