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

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

做國內(nèi)貿(mào)易的網(wǎng)站網(wǎng)站推廣技術(shù)

做國內(nèi)貿(mào)易的網(wǎng)站,網(wǎng)站推廣技術(shù),建網(wǎng)頁要錢嗎,app自己怎么開發(fā)軟件??作者:小宋1021 🤵?♂?個人主頁:小宋1021主頁 ??堅持分析平時學(xué)習(xí)到的項目以及學(xué)習(xí)到的軟件開發(fā)知識,和大家一起努力呀!!! 🎈🎈加油! 加油&#xff01…

??作者:小宋1021
🤵?♂?個人主頁:小宋1021主頁
??堅持分析平時學(xué)習(xí)到的項目以及學(xué)習(xí)到的軟件開發(fā)知識,和大家一起努力呀!!!
🎈🎈加油! 加油! 加油! 加油
🎈歡迎評論 💬點贊👍🏻 收藏 📂加關(guān)注+!


目錄

初識elasticsearch

認(rèn)識和安裝

安裝elasticsearch

安裝Kibana

倒排索引

正向索引

倒排索引

正向和倒排

基礎(chǔ)概念

文檔和字段

索引和映射

mysql與elasticsearch

IK分詞器

安裝IK分詞器

使用IK分詞器

拓展詞典

總結(jié)


在我們的項目之中搜索肯定是訪問頻率最高的頁面之一。目前搜索功能是基于數(shù)據(jù)庫的模糊搜索來實現(xiàn)的,存在很多問題。

首先,查詢效率較低。

由于數(shù)據(jù)庫模糊查詢不走索引,在數(shù)據(jù)量較大的時候,查詢性能很差。表中僅僅有不到9萬條數(shù)據(jù),基于數(shù)據(jù)庫查詢時,搜索接口的表現(xiàn)如圖:

改為基于搜索引擎后,查詢表現(xiàn)如下:

需要注意的是,數(shù)據(jù)庫模糊查詢隨著表數(shù)據(jù)量的增多,查詢性能的下降會非常明顯,而搜索引擎的性能則不會隨著數(shù)據(jù)增多而下降太多。目前僅10萬不到的數(shù)據(jù)量差距就如此明顯,如果數(shù)據(jù)量達(dá)到百萬、千萬、甚至上億級別,這個性能差距會非??鋸?。

其次,功能單一

數(shù)據(jù)庫的模糊搜索功能單一,匹配條件非常苛刻,必須恰好包含用戶搜索的關(guān)鍵字。而在搜索引擎中,用戶輸入出現(xiàn)個別錯字,或者用拼音搜索、同義詞搜索都能正確匹配到數(shù)據(jù)。

綜上,在面臨海量數(shù)據(jù)的搜索,或者有一些復(fù)雜搜索需求的時候,推薦使用專門的搜索引擎來實現(xiàn)搜索功能。

目前全球的搜索引擎技術(shù)排名如下:

排名第一的就是我們今天要學(xué)習(xí)的elasticsearch.

elasticsearch是一款非常強大的開源搜索引擎,支持的功能非常多,例如:

通過今天的學(xué)習(xí)大家要達(dá)成下列學(xué)習(xí)目標(biāo):

  • 理解倒排索引原理

  • 會使用IK分詞器

  • 理解索引庫Mapping映射的屬性含義

  • 能創(chuàng)建索引庫及映射

  • 能實現(xiàn)文檔的CRUD

初識elasticsearch

Elasticsearch的官方網(wǎng)站如下:

Elasticsearch:官方分布式搜索和分析引擎 | Elastic

本章我們一起來初步了解一下Elasticsearch的基本原理和一些基礎(chǔ)概念。

認(rèn)識和安裝

Elasticsearch是由elastic公司開發(fā)的一套搜索引擎技術(shù),它是elastic技術(shù)棧中的一部分。完整的技術(shù)棧包括:

  • Elasticsearch:用于數(shù)據(jù)存儲、計算和搜索

  • Logstash/Beats:用于數(shù)據(jù)收集

  • Kibana:用于數(shù)據(jù)可視化

整套技術(shù)棧被稱為ELK,經(jīng)常用來做日志收集、系統(tǒng)監(jiān)控和狀態(tài)分析等等:

整套技術(shù)棧的核心就是用來存儲、搜索、計算的Elasticsearch,因此我們接下來學(xué)習(xí)的核心也是Elasticsearch。

我們要安裝的內(nèi)容包含2部分:

  • elasticsearch:存儲、搜索和運算

  • kibana:圖形化展示

首先Elasticsearch不用多說,是提供核心的數(shù)據(jù)存儲、搜索、分析功能的。

然后是Kibana,Elasticsearch對外提供的是Restful風(fēng)格的API,任何操作都可以通過發(fā)送http請求來完成。不過http請求的方式、路徑、還有請求參數(shù)的格式都有嚴(yán)格的規(guī)范。這些規(guī)范我們肯定記不住,因此我們要借助于Kibana這個服務(wù)。

Kibana是elastic公司提供的用于操作Elasticsearch的可視化控制臺。它的功能非常強大,包括:

  • 對Elasticsearch數(shù)據(jù)的搜索、展示

  • 對Elasticsearch數(shù)據(jù)的統(tǒng)計、聚合,并形成圖形化報表、圖形

  • 對Elasticsearch的集群狀態(tài)監(jiān)控

  • 它還提供了一個開發(fā)控制臺(DevTools),在其中對Elasticsearch的Restful的API接口提供了語法提示

安裝elasticsearch

通過下面的Docker命令即可安裝單機版本的elasticsearch:

docker run -d \
? --name es \
? -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
? -e "discovery.type=single-node" \
? -v es-data:/usr/share/elasticsearch/data \
? -v es-plugins:/usr/share/elasticsearch/plugins \
? --privileged \
? --network hm-net \
? -p 9200:9200 \
? -p 9300:9300 \
? elasticsearch:7.12.1

注意,這里我們采用的是elasticsearch的7.12.1版本,由于8以上版本的JavaAPI變化很大,在企業(yè)中應(yīng)用并不廣泛,企業(yè)中應(yīng)用較多的還是8以下的版本。

如果拉取鏡像困難,可以直接導(dǎo)入提供的鏡像tar包:

安裝完成后,訪問9200端口,即可看到響應(yīng)的Elasticsearch服務(wù)的基本信息:

安裝Kibana

通過下面的Docker命令,即可部署Kibana:

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=hm-net \
-p 5601:5601 ?\
kibana:7.12.1

如果拉取鏡像困難,可以直接導(dǎo)入資料提供的鏡像tar包:

安裝完成后,直接訪問5601端口,即可看到控制臺頁面:

選擇Explore on my own之后,進入主頁面:

然后選中Dev tools,進入開發(fā)工具頁面:

倒排索引

elasticsearch之所以有如此高性能的搜索表現(xiàn),正是得益于底層的倒排索引技術(shù)。那么什么是倒排索引呢?

倒排索引的概念是基于MySQL這樣的正向索引而言的。

正向索引

我們先來回顧一下正向索引。

例如有一張名為tb_goods的表:

id

title

price

1

小米手機

3499

2

華為手機

4999

3

華為小米充電器

49

4

小米手環(huán)

49

...

...

...

其中的id字段已經(jīng)創(chuàng)建了索引,由于索引底層采用了B+樹結(jié)構(gòu),因此我們根據(jù)id搜索的速度會非??臁5瞧渌侄卫?code>title,只在葉子節(jié)點上存在。

因此要根據(jù)title搜索的時候只能遍歷樹中的每一個葉子節(jié)點,判斷title數(shù)據(jù)是否符合要求。

比如用戶的SQL語句為:

select * from tb_goods where title like '%手機%';

那搜索的大概流程如圖:

說明:

  • 1)檢查到搜索條件為like '%手機%',需要找到title中包含手機的數(shù)據(jù)

  • 2)逐條遍歷每行數(shù)據(jù)(每個葉子節(jié)點),比如第1次拿到id為1的數(shù)據(jù)

  • 3)判斷數(shù)據(jù)中的title字段值是否符合條件

  • 4)如果符合則放入結(jié)果集,不符合則丟棄

  • 5)回到步驟1

綜上,根據(jù)id精確匹配時,可以走索引,查詢效率較高。而當(dāng)搜索條件為模糊匹配時,由于索引無法生效,導(dǎo)致從索引查詢退化為全表掃描,效率很差。

因此,正向索引適合于根據(jù)索引字段的精確搜索,不適合基于部分詞條的模糊匹配。

而倒排索引恰好解決的就是根據(jù)部分詞條模糊匹配的問題。

倒排索引

倒排索引中有兩個非常重要的概念:

  • 文檔(Document):用來搜索的數(shù)據(jù),其中的每一條數(shù)據(jù)就是一個文檔。例如一個網(wǎng)頁、一個商品信息

  • 詞條(Term):對文檔數(shù)據(jù)或用戶搜索數(shù)據(jù),利用某種算法分詞,得到的具備含義的詞語就是詞條。例如:我是中國人,就可以分為:我、是、中國人、中國、國人這樣的幾個詞條

創(chuàng)建倒排索引是對正向索引的一種特殊處理和應(yīng)用,流程如下:

  • 將每一個文檔的數(shù)據(jù)利用分詞算法根據(jù)語義拆分,得到一個個詞條

  • 創(chuàng)建表,每行數(shù)據(jù)包括詞條、詞條所在文檔id、位置等信息

  • 因為詞條唯一性,可以給詞條創(chuàng)建正向索引

此時形成的這張以詞條為索引的表,就是倒排索引表,兩者對比如下:

正向索引

id(索引)

title

price

1

小米手機

3499

2

華為手機

4999

3

華為小米充電器

49

4

小米手環(huán)

49

...

...

...

倒排索引

詞條(索引)

文檔id

小米

1,3,4

手機

1,2

華為

2,3

充電器

3

手環(huán)

4

倒排索引的搜索流程如下(以搜索"華為手機"為例),如圖:

流程描述:

1)用戶輸入條件"華為手機"進行搜索。

2)對用戶輸入條件分詞,得到詞條:華為、手機

3)拿著詞條在倒排索引中查找(由于詞條有索引,查詢效率很高),即可得到包含詞條的文檔id:1、2、3。

4)拿著文檔id到正向索引中查找具體文檔即可(由于id也有索引,查詢效率也很高)。

雖然要先查詢倒排索引,再查詢倒排索引,但是無論是詞條、還是文檔id都建立了索引,查詢速度非???#xff01;無需全表掃描。

正向和倒排

那么為什么一個叫做正向索引,一個叫做倒排索引呢?

  • 正向索引是最傳統(tǒng)的,根據(jù)id索引的方式。但根據(jù)詞條查詢時,必須先逐條獲取每個文檔,然后判斷文檔中是否包含所需要的詞條,是根據(jù)文檔找詞條的過程。

  • 倒排索引則相反,是先找到用戶要搜索的詞條,根據(jù)詞條得到保護詞條的文檔的id,然后根據(jù)id獲取文檔。是根據(jù)詞條找文檔的過程

是不是恰好反過來了?

那么兩者方式的優(yōu)缺點是什么呢?

正向索引

  • 優(yōu)點:

    • 可以給多個字段創(chuàng)建索引

    • 根據(jù)索引字段搜索、排序速度非常快

  • 缺點:

    • 根據(jù)非索引字段,或者索引字段中的部分詞條查找時,只能全表掃描。

倒排索引

  • 優(yōu)點:

    • 根據(jù)詞條搜索、模糊搜索時,速度非???/p>

  • 缺點:

    • 只能給詞條創(chuàng)建索引,而不是字段

    • 無法根據(jù)字段做排序

基礎(chǔ)概念

elasticsearch中有很多獨有的概念,與mysql中略有差別,但也有相似之處。

文檔和字段

elasticsearch是面向文檔(Document)存儲的,可以是數(shù)據(jù)庫中的一條商品數(shù)據(jù),一個訂單信息。文檔數(shù)據(jù)會被序列化為json格式后存儲在elasticsearch中:

{
? ? "id": 1,
? ? "title": "小米手機",
? ? "price": 3499
}
{
? ? "id": 2,
? ? "title": "華為手機",
? ? "price": 4999
}
{
? ? "id": 3,
? ? "title": "華為小米充電器",
? ? "price": 49
}
{
? ? "id": 4,
? ? "title": "小米手環(huán)",
? ? "price": 299
}
?

因此,原本數(shù)據(jù)庫中的一行數(shù)據(jù)就是ES中的一個JSON文檔;而數(shù)據(jù)庫中每行數(shù)據(jù)都包含很多列,這些列就轉(zhuǎn)換為JSON文檔中的字段(Field)。

索引和映射

隨著業(yè)務(wù)發(fā)展,需要在es中存儲的文檔也會越來越多,比如有商品的文檔、用戶的文檔、訂單文檔等等:

所有文檔都散亂存放顯然非常混亂,也不方便管理。

因此,我們要將類型相同的文檔集中在一起管理,稱為索引(Index)。例如:

商品索引

{
? ? "id": 1,
? ? "title": "小米手機",
? ? "price": 3499
}

{
? ? "id": 2,
? ? "title": "華為手機",
? ? "price": 4999
}

{
? ? "id": 3,
? ? "title": "三星手機",
? ? "price": 3999
}

用戶索引

{
? ? "id": 101,
? ? "name": "張三",
? ? "age": 21
}

{
? ? "id": 102,
? ? "name": "李四",
? ? "age": 24
}

{
? ? "id": 103,
? ? "name": "麻子",
? ? "age": 18
}

訂單索引

{
? ? "id": 10,
? ? "userId": 101,
? ? "goodsId": 1,
? ? "totalFee": 294
}

{
? ? "id": 11,
? ? "userId": 102,
? ? "goodsId": 2,
? ? "totalFee": 328
}
?

  • 所有用戶文檔,就可以組織在一起,稱為用戶的索引;

  • 所有商品的文檔,可以組織在一起,稱為商品的索引;

  • 所有訂單的文檔,可以組織在一起,稱為訂單的索引;

因此,我們可以把索引當(dāng)做是數(shù)據(jù)庫中的表。

數(shù)據(jù)庫的表會有約束信息,用來定義表的結(jié)構(gòu)、字段的名稱、類型等信息。因此,索引庫中就有映射(mapping),是索引中文檔的字段約束信息,類似表的結(jié)構(gòu)約束。

mysql與elasticsearch

我們統(tǒng)一的把mysql與elasticsearch的概念做一下對比:

MySQL

Elasticsearch

說明

Table

Index

索引(index),就是文檔的集合,類似數(shù)據(jù)庫的表(table)

Row

Document

文檔(Document),就是一條條的數(shù)據(jù),類似數(shù)據(jù)庫中的行(Row),文檔都是JSON格式

Column

Field

字段(Field),就是JSON文檔中的字段,類似數(shù)據(jù)庫中的列(Column)

Schema

Mapping

Mapping(映射)是索引中文檔的約束,例如字段類型約束。類似數(shù)據(jù)庫的表結(jié)構(gòu)(Schema)

SQL

DSL

DSL是elasticsearch提供的JSON風(fēng)格的請求語句,用來操作elasticsearch,實現(xiàn)CRUD

如圖:

那是不是說,我們學(xué)習(xí)了elasticsearch就不再需要mysql了呢?

并不是如此,兩者各自有自己的擅長之處:

  • Mysql:擅長事務(wù)類型操作,可以確保數(shù)據(jù)的安全和一致性

  • Elasticsearch:擅長海量數(shù)據(jù)的搜索、分析、計算

因此在企業(yè)中,往往是兩者結(jié)合使用:

  • 對安全性要求較高的寫操作,使用mysql實現(xiàn)

  • 對查詢性能要求較高的搜索需求,使用elasticsearch實現(xiàn)

  • 兩者再基于某種方式,實現(xiàn)數(shù)據(jù)的同步,保證一致性

IK分詞器

Elasticsearch的關(guān)鍵就是倒排索引,而倒排索引依賴于對文檔內(nèi)容的分詞,而分詞則需要高效、精準(zhǔn)的分詞算法,IK分詞器就是這樣一個中文分詞算法。

安裝IK分詞器

方案一:在線安裝

運行一個命令即可:

docker exec -it es ./bin/elasticsearch-plugin ?install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip

然后重啟es容器:

docker restart es

方案二:離線安裝

如果網(wǎng)速較差,也可以選擇離線安裝。

首先,查看之前安裝的Elasticsearch容器的plugins數(shù)據(jù)卷目錄:

docker volume inspect es-plugins

結(jié)果如下:

[
? ? {
? ? ? ? "CreatedAt": "2024-11-06T10:06:34+08:00",
? ? ? ? "Driver": "local",
? ? ? ? "Labels": null,
? ? ? ? "Mountpoint": "/var/lib/docker/volumes/es-plugins/_data",
? ? ? ? "Name": "es-plugins",
? ? ? ? "Options": null,
? ? ? ? "Scope": "local"
? ? }
]

可以看到elasticsearch的插件掛載到了/var/lib/docker/volumes/es-plugins/_data這個目錄。我們需要把IK分詞器上傳至這個目錄。

找到課前資料提供的ik分詞器插件,課前資料提供了7.12.1版本的ik分詞器壓縮文件,你需要對其解壓:

然后上傳至虛擬機的/var/lib/docker/volumes/es-plugins/_data這個目錄:

最后,重啟es容器:

docker restart es

使用IK分詞器

IK分詞器包含兩種模式:

  • ik_smart:智能語義切分

  • ik_max_word:最細(xì)粒度切分

我們在Kibana的DevTools上來測試分詞器,首先測試Elasticsearch官方提供的標(biāo)準(zhǔn)分詞器:

POST /_analyze
{
? "analyzer": "standard",
? "text": "程序員學(xué)習(xí)java太棒了"
}

結(jié)果如下:

{
? "tokens" : [
? ? {
? ? ? "token" : "程",
? ? ? "start_offset" : 2,
? ? ? "end_offset" : 3,
? ? ? "type" : "<IDEOGRAPHIC>",
? ? ? "position" : 2
? ? },
? ? {
? ? ? "token" : "序",
? ? ? "start_offset" : 3,
? ? ? "end_offset" : 4,
? ? ? "type" : "<IDEOGRAPHIC>",
? ? ? "position" : 3
? ? },
? ? {
? ? ? "token" : "員",
? ? ? "start_offset" : 4,
? ? ? "end_offset" : 5,
? ? ? "type" : "<IDEOGRAPHIC>",
? ? ? "position" : 4
? ? },
? ? {
? ? ? "token" : "學(xué)",
? ? ? "start_offset" : 5,
? ? ? "end_offset" : 6,
? ? ? "type" : "<IDEOGRAPHIC>",
? ? ? "position" : 5
? ? },
? ? {
? ? ? "token" : "習(xí)",
? ? ? "start_offset" : 6,
? ? ? "end_offset" : 7,
? ? ? "type" : "<IDEOGRAPHIC>",
? ? ? "position" : 6
? ? },
? ? {
? ? ? "token" : "java",
? ? ? "start_offset" : 7,
? ? ? "end_offset" : 11,
? ? ? "type" : "<ALPHANUM>",
? ? ? "position" : 7
? ? },
? ? {
? ? ? "token" : "太",
? ? ? "start_offset" : 11,
? ? ? "end_offset" : 12,
? ? ? "type" : "<IDEOGRAPHIC>",
? ? ? "position" : 8
? ? },
? ? {
? ? ? "token" : "棒",
? ? ? "start_offset" : 12,
? ? ? "end_offset" : 13,
? ? ? "type" : "<IDEOGRAPHIC>",
? ? ? "position" : 9
? ? },
? ? {
? ? ? "token" : "了",
? ? ? "start_offset" : 13,
? ? ? "end_offset" : 14,
? ? ? "type" : "<IDEOGRAPHIC>",
? ? ? "position" : 10
? ? }
? ]
}
?

可以看到,標(biāo)準(zhǔn)分詞器智能1字1詞條,無法正確對中文做分詞。

我們再測試IK分詞器:

POST /_analyze
{
? "analyzer": "ik_smart",
? "text": "程序員學(xué)習(xí)java太棒了"
}

執(zhí)行結(jié)果如下:

{
? "tokens" : [
? ? {
? ? ? "token" : "程序員",
? ? ? "start_offset" : 2,
? ? ? "end_offset" : 5,
? ? ? "type" : "CN_WORD",
? ? ? "position" : 1
? ? },
? ? {
? ? ? "token" : "學(xué)習(xí)",
? ? ? "start_offset" : 5,
? ? ? "end_offset" : 7,
? ? ? "type" : "CN_WORD",
? ? ? "position" : 2
? ? },
? ? {
? ? ? "token" : "java",
? ? ? "start_offset" : 7,
? ? ? "end_offset" : 11,
? ? ? "type" : "ENGLISH",
? ? ? "position" : 3
? ? },
? ? {
? ? ? "token" : "太棒了",
? ? ? "start_offset" : 11,
? ? ? "end_offset" : 14,
? ? ? "type" : "CN_WORD",
? ? ? "position" : 4
? ? }
? ]
}
?

拓展詞典

隨著互聯(lián)網(wǎng)的發(fā)展,“造詞運動”也越發(fā)的頻繁。出現(xiàn)了很多新的詞語,在原有的詞匯列表中并不存在。比如:“泰褲辣”,“傳智播客” 等。

IK分詞器無法對這些詞匯分詞,測試一下:

POST /_analyze
{
? "analyzer": "ik_max_word",
? "text": "傳智播客開設(shè)大學(xué),真的泰褲辣!"
}

結(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
? ? },
? ? {
? ? ? "token" : "播",
? ? ? "start_offset" : 2,
? ? ? "end_offset" : 3,
? ? ? "type" : "CN_CHAR",
? ? ? "position" : 2
? ? },
? ? {
? ? ? "token" : "客",
? ? ? "start_offset" : 3,
? ? ? "end_offset" : 4,
? ? ? "type" : "CN_CHAR",
? ? ? "position" : 3
? ? },
? ? {
? ? ? "token" : "開設(shè)",
? ? ? "start_offset" : 4,
? ? ? "end_offset" : 6,
? ? ? "type" : "CN_WORD",
? ? ? "position" : 4
? ? },
? ? {
? ? ? "token" : "大學(xué)",
? ? ? "start_offset" : 6,
? ? ? "end_offset" : 8,
? ? ? "type" : "CN_WORD",
? ? ? "position" : 5
? ? },
? ? {
? ? ? "token" : "真的",
? ? ? "start_offset" : 9,
? ? ? "end_offset" : 11,
? ? ? "type" : "CN_WORD",
? ? ? "position" : 6
? ? },
? ? {
? ? ? "token" : "泰",
? ? ? "start_offset" : 11,
? ? ? "end_offset" : 12,
? ? ? "type" : "CN_CHAR",
? ? ? "position" : 7
? ? },
? ? {
? ? ? "token" : "褲",
? ? ? "start_offset" : 12,
? ? ? "end_offset" : 13,
? ? ? "type" : "CN_CHAR",
? ? ? "position" : 8
? ? },
? ? {
? ? ? "token" : "辣",
? ? ? "start_offset" : 13,
? ? ? "end_offset" : 14,
? ? ? "type" : "CN_CHAR",
? ? ? "position" : 9
? ? }
? ]
}
?

可以看到,傳智播客泰褲辣都無法正確分詞。

所以要想正確分詞,IK分詞器的詞庫也需要不斷的更新,IK分詞器提供了擴展詞匯的功能。

1)打開IK分詞器config目錄:

注意,如果采用在線安裝的通過,默認(rèn)是沒有config目錄的,需要把課前資料提供的ik下的config上傳至對應(yīng)目錄。

2)在IKAnalyzer.cfg.xml配置文件內(nèi)容添加:

<?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">ext.dic</entry>
</properties>

3)在IK分詞器的config目錄新建一個 ext.dic,可以參考config目錄下復(fù)制一個配置文件進行修改

傳智播客
泰褲辣

4)重啟elasticsearch

docker restart es

# 查看 日志
docker logs -f elasticsearch

再次測試,可以發(fā)現(xiàn)傳智播客泰褲辣都正確分詞了:

{
? "tokens" : [
? ? {
? ? ? "token" : "傳智播客",
? ? ? "start_offset" : 0,
? ? ? "end_offset" : 4,
? ? ? "type" : "CN_WORD",
? ? ? "position" : 0
? ? },
? ? {
? ? ? "token" : "開設(shè)",
? ? ? "start_offset" : 4,
? ? ? "end_offset" : 6,
? ? ? "type" : "CN_WORD",
? ? ? "position" : 1
? ? },
? ? {
? ? ? "token" : "大學(xué)",
? ? ? "start_offset" : 6,
? ? ? "end_offset" : 8,
? ? ? "type" : "CN_WORD",
? ? ? "position" : 2
? ? },
? ? {
? ? ? "token" : "真的",
? ? ? "start_offset" : 9,
? ? ? "end_offset" : 11,
? ? ? "type" : "CN_WORD",
? ? ? "position" : 3
? ? },
? ? {
? ? ? "token" : "泰褲辣",
? ? ? "start_offset" : 11,
? ? ? "end_offset" : 14,
? ? ? "type" : "CN_WORD",
? ? ? "position" : 4
? ? }
? ]
}

總結(jié)

分詞器的作用是什么?

  • 創(chuàng)建倒排索引時,對文檔分詞

  • 用戶搜索時,對輸入的內(nèi)容分詞

IK分詞器有幾種模式?

  • ik_smart:智能切分,粗粒度

  • ik_max_word:最細(xì)切分,細(xì)粒度

IK分詞器如何拓展詞條?如何停用詞條?

  • 利用config目錄的IkAnalyzer.cfg.xml文件添加拓展詞典和停用詞典

  • 在詞典中添加拓展詞條或者停用詞條

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

相關(guān)文章:

  • 儀器儀表網(wǎng)站制作搜索軟件使用排名
  • 關(guān)于 公司網(wǎng)站建設(shè)的通知營銷頁面
  • 網(wǎng)站SEO做點提升流量象客下載百度極速版免費安裝
  • 在線制作簡歷網(wǎng)站卡點視頻免費制作軟件
  • 能被百度收錄的建站網(wǎng)站網(wǎng)站建設(shè)方案推廣
  • 做營銷策劃的上哪個網(wǎng)站好鄭州網(wǎng)絡(luò)推廣大包
  • 固安做網(wǎng)站的免費發(fā)布推廣信息的平臺有哪些
  • 江門網(wǎng)站優(yōu)化公司seo優(yōu)化排名技術(shù)百度教程
  • 鶴山做網(wǎng)站公司seo推廣優(yōu)化官網(wǎng)
  • 網(wǎng)站開發(fā)員工保密協(xié)議網(wǎng)絡(luò)營銷的成功案例分析
  • 哪些公司做網(wǎng)站競價排名的優(yōu)缺點
  • 做企業(yè)網(wǎng)站要用什么軟件谷歌chrome官網(wǎng)
  • 做網(wǎng)站是不是要學(xué)編程外包公司怎么賺錢
  • ofbiz做的網(wǎng)站網(wǎng)絡(luò)輿情監(jiān)控
  • 網(wǎng)站備案很麻煩嗎網(wǎng)站模板圖片
  • 有哪些做普洱茶網(wǎng)站的seo關(guān)鍵詞優(yōu)化
  • 招標(biāo)采購導(dǎo)航網(wǎng)蘇州吳中區(qū)seo關(guān)鍵詞優(yōu)化排名
  • 兼職做問卷調(diào)查的網(wǎng)站個人網(wǎng)站設(shè)計內(nèi)容
  • 網(wǎng)絡(luò)營銷推廣方法是什么和什么的合理利用百度seo按天計費
  • 做商城網(wǎng)站需要什么超級外鏈發(fā)布
  • 如今做哪些網(wǎng)站能致富長沙seo就選智優(yōu)營家
  • 網(wǎng)站路徑優(yōu)化怎么做淘寶運營一般要學(xué)多久
  • 專門做汽車動力性測試的網(wǎng)站seo站長綜合查詢工具
  • 建微網(wǎng)站有什么好處做網(wǎng)站優(yōu)化哪家公司好
  • 大型網(wǎng)站urlseo具體是什么
  • 幫他人做視頻網(wǎng)站違法嗎推薦就業(yè)的培訓(xùn)機構(gòu)
  • 網(wǎng)站登陸界面怎么做藝人百度指數(shù)排行榜
  • 網(wǎng)站建設(shè)方案標(biāo)準(zhǔn)模板網(wǎng)站流量查詢網(wǎng)站統(tǒng)計查詢
  • wordpress4.9下載東莞網(wǎng)站建設(shè)優(yōu)化技術(shù)
  • 寶山專業(yè)做網(wǎng)站百度官網(wǎng)平臺