在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ElasticSearch同義詞代碼解析

馬哥Linux運(yùn)維 ? 來源:稀土掘金 ? 2023-11-29 10:26 ? 次閱讀

索引擎會(huì)對文檔和查詢進(jìn)行分析并將其拆解為最小的單元(通常稱為詞元,實(shí)際上就是抽象的符號)。搜索時(shí),匹配過程會(huì)使用簡單字串相似度,所以如果查詢中有一些十分微小的拼寫錯(cuò)誤(例如“hous”,只比“house”少一個(gè)字母 e)或者使用名詞的復(fù)數(shù)形式(“houses”),即使文檔中包含名詞的單數(shù)形式(“house”),搜索引擎也不會(huì)匹配到這份文檔。詞干提取器或模糊查詢等工具雖然可以解決一些最常見的此類問題,但是它們并不能消除相關(guān)聯(lián)的概念或想法之間的差異,也不能將文檔或查詢中稍有不同的單詞用法視為等同。

這時(shí)同義詞就派上了大用場。同義詞的英文 synonym 來自于希臘語,分別是前綴σ?ν(syn,表示“一起”)和?νομα(ónoma,表示“名稱”)。從它的詞源可以看出,同義詞表示的是在同一語言或領(lǐng)域中具有完全或基本相同意思的不同詞語。實(shí)際上,同義詞的范圍非常廣泛,包括一般同義詞(“疲勞”和“困倦”)、縮寫(英鎊的兩種寫法“l(fā)b.”和“pound”)、電商搜索中產(chǎn)品的不同拼寫(“iPod”和“i-Pod”)、細(xì)微的語言差異(例如均表示電梯的英式英語“l(fā)ift”和美式英語“elevator”)、專業(yè)用詞和普通用詞(例如“犬”和“狗”),甚至單純表示同一概念的兩種方式(“宇宙”和“太空”)。通過提供恰當(dāng)?shù)耐x詞規(guī)則,搜索工程師能夠就哪些詞在各自領(lǐng)域內(nèi)具有相似意思并應(yīng)該采取相似處理方法提供相關(guān)信息。

同義詞用于提高搜索質(zhì)量并擴(kuò)大匹配范圍。 例如,搜索oil的用戶可能希望找到包含原油或石油的文檔,盡管這三個(gè)詞完全不同。

在我們的很多情況下,我們希望在搜索時(shí),有時(shí)能夠使用一個(gè)詞的同義詞來進(jìn)行搜索,這樣我們能搜索出來更多相關(guān)的內(nèi)容。我們可以通過 text analysis 來幫助我們形成同義詞

索引時(shí)使用同義詞和搜索時(shí)使用同義詞的對比

同義詞在分析器中使用,其既可在索引時(shí)使用,也可在搜索時(shí)使用。關(guān)于在 Elasticsearch 中如何使用同義詞篩選器,最常見的問題之一就是:“我應(yīng)該索引時(shí)使用,還是搜索時(shí)使用,還是同時(shí)都用?” 我們首先看一下在索引時(shí)應(yīng)用同義詞篩選。這意味著會(huì)在索引后的文檔中對字詞進(jìn)行一次性替換或擴(kuò)展,結(jié)果將一直保存在搜索索引中。

索引時(shí)使用同義詞有幾個(gè)劣勢:

由于必須對所有同義詞進(jìn)行索引,所以索引規(guī)模會(huì)變大。

搜索得分(依賴于字詞統(tǒng)計(jì)數(shù)據(jù))可能會(huì)受影響,因?yàn)橥x詞也會(huì)計(jì)算在內(nèi),所以不常見單詞的統(tǒng)計(jì)數(shù)據(jù)會(huì)存在偏差。

除非進(jìn)行重新索引,否則無法針對既有文檔更改同義詞規(guī)則。

最后兩條尤其是巨大劣勢。索引時(shí)應(yīng)用同義詞的唯一潛在好處是性能好,因?yàn)槟谇捌谝奄M(fèi)心完成了擴(kuò)展過程,所以無需再在每次查詢時(shí)完成一遍擴(kuò)展過程,這有可能致使需要與更多的字詞進(jìn)行匹配。然而這一點(diǎn)在實(shí)踐中通常并非真正的問題。

相反,在搜索時(shí)所用的分析工具中使用同義詞則可以避免很多上述問題:

索引規(guī)模不受影響。

語料庫中的字詞統(tǒng)計(jì)數(shù)據(jù)保持不變。

如需變更同義詞規(guī)則,無需對文檔進(jìn)行重新索引。

這些優(yōu)勢通常要高出唯一的劣勢,即每次查詢時(shí)都必須執(zhí)行同義詞擴(kuò)展操作,這有可能導(dǎo)致需要匹配更多字詞。不僅如此,搜索時(shí)擴(kuò)展同義詞還能夠允許使用更加復(fù)雜的synonym_graph詞元篩選器,這一工具能夠正確處理多單詞同義詞,并且僅可在搜索分析器中使用。

一般而言,搜索時(shí)使用同義詞的優(yōu)勢通常要高于索引時(shí)使用同義詞可能實(shí)現(xiàn)的微小性能改進(jìn)。

然而,如果在搜索時(shí)使用同義詞,過去還需要注意另外一個(gè)問題。盡管更改同義詞規(guī)則不需要對文檔進(jìn)行重新索引,但是如要更改的話,您必須暫時(shí)關(guān)閉再重新打開索引。這一點(diǎn)很有必要,因?yàn)榉治銎髟谙铝袝r(shí)候才會(huì)創(chuàng)建實(shí)例:創(chuàng)建索引時(shí),重啟節(jié)點(diǎn)時(shí),以及重新打開已關(guān)閉的索引時(shí)。為了讓對同義詞規(guī)則文件所做的變更對索引可見,用戶必須首先在所有節(jié)點(diǎn)上更新文件,然后再關(guān)閉并重新打開索引。但是這個(gè)問題已經(jīng)得以解決。

在查詢時(shí)對詞進(jìn)行同義詞解析

es操作版本8.8.0


創(chuàng)建索引
PUT myindex
{
    "settings": {
        "analysis": {
            "filter": {
                "my_synonyms": {
                    "type": "synonym_graph",
                    "synonyms": [
                        "看月亮,吃月餅=>中秋節(jié)",
                        "雙十一,雙11=>購物",
                        "免費(fèi),免費(fèi)版,不要錢的,無償"
                    ]
                }
            },
            "analyzer": {
                "my_analyzer": {
                    "type": "custom",
                    "tokenizer": "standard",
                    "filter": [
                        "lowercase",
                        "my_synonyms"
                    ]
                }
            }
        }
    },
    "mappings": {
            "properties": {
                "content": {
                    "type": "text",
                    "analyzer": "standard",
                    "search_analyzer": "my_analyzer"
                }
            }
        }
    }


展示數(shù)據(jù)
"hits": {
    "total": 4,
    "max_score": 1.0,
    "hits": [
        {
            "_index": "myindex",
            "_type": "_doc",
            "_id": "luiwhIsB4MmTaMc6fVt7",
            "_score": 1.0,
            "_source": {
                "content": "無償"
            }
        },
        {
            "_index": "myindex",
            "_type": "_doc",
            "_id": "lOiwhIsB4MmTaMc6a1uu",
            "_score": 1.0,
            "_source": {
                "content": "中秋節(jié)"
            }
        },
        {
            "_index": "myindex",
            "_type": "_doc",
            "_id": "p-iwhIsB4MmTaMc68GuR",
            "_score": 1.0,
            "_source": {
                "content": "不要錢的"
            }
        },
        {
            "_index": "myindex",
            "_type": "_doc",
            "_id": "kuiwhIsB4MmTaMc6NFsw",
            "_score": 1.0,
            "_source": {
                "content": "購物"
            }
        }
    ]
}

試查詢b1be22de-8dc0-11ee-939d-92fbcf53809c.jpg

b1d40720-8dc0-11ee-939d-92fbcf53809c.jpg

b1e4aba2-8dc0-11ee-939d-92fbcf53809c.jpg

測試查詢分詞b1f763dc-8dc0-11ee-939d-92fbcf53809c.jpg

b209d47c-8dc0-11ee-939d-92fbcf53809c.jpg

b1e4aba2-8dc0-11ee-939d-92fbcf53809c.jpg

上面我們一直在創(chuàng)建索引時(shí)直接指定同義詞列表。 但是,當(dāng)你有大量同義詞時(shí),將它們?nèi)刻砑拥剿饕袝?huì)很麻煩。 更好的方法是將它們存儲(chǔ)在一個(gè)文件中,然后動(dòng)態(tài)地將它們加載到索引中。 使用同義詞文件有很多好處,其中包括:

方便維護(hù)大量的同義詞。

可以被不同的索引使用。

可以在不關(guān)閉索引的情況下動(dòng)態(tài)重新加載

我們將創(chuàng)建的同義詞文件稱為 synonyms.txt,但可以任意命名,把同義詞維護(hù)進(jìn)去,加載到es中 默認(rèn)去讀取config目錄下

b23cba54-8dc0-11ee-939d-92fbcf53809c.jpg

使用同義詞文件創(chuàng)建一個(gè)新索引,請注意我們將同義詞篩選器標(biāo)記為了updateable(可更新)


PUT myindex
{
    "settings": {
        "analysis": {
            "filter": {
                "my_synonyms": {
                    "type": "synonym_graph",
                    "synonyms_path": "analysis/synonyms.txt",
                    "updateable": true
                }
            },
            "analyzer": {
                "my_analyzer": {
                    "type": "custom",
                    "tokenizer": "standard",
                    "filter": [
                        "lowercase",
                        "my_synonyms"
                    ]
                }
            }
        }
    },
    "mappings": {
        "properties": {
            "content": {
                "type": "text",
                "analyzer": "standard",
                "search_analyzer": "my_analyzer"
            }
        }
    }
}

測試同義詞


GET /myindex/_search
{
    "took": 0,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 3,
            "relation": "eq"
        },
        "max_score": 1,
        "hits": [
            {
                "_index": "myindex",
                "_id": "1",
                "_score": 1,
                "_source": {
                    "content": "齊魯"
                }
            },
            {
                "_index": "myindex",
                "_id": "2",
                "_score": 1,
                "_source": {
                    "content": "淄博"
                }
            },
            {
                "_index": "myindex",
                "_id": "3",
                "_score": 1,
                "_source": {
                    "content": "戴眼鏡"
                }
            }
        ]
    }
}


測試請求: 
GET /myindex/_search
{
    "query": {
        "match": {
            "content": "4眼仔"
        }
    }
}


響應(yīng):
{
    "took": 1,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 1,
            "relation": "eq"
        },
        "max_score": 2.634553,
        "hits": [
            {
                "_index": "myindex",
                "_id": "3",
                "_score": 2.634553,
                "_source": {
                    "content": "戴眼鏡"
                }
            }
        ]
    }
}

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 分析器
    +關(guān)注

    關(guān)注

    0

    文章

    93

    瀏覽量

    12650
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4882

    瀏覽量

    70065
  • Elasticsearch
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    2961

原文標(biāo)題:ElasticSearch同義詞解析

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Windows安裝ElasticSearch

    Windows安裝ElasticSearch
    的頭像 發(fā)表于 02-15 17:09 ?1149次閱讀
    Windows安裝<b class='flag-5'>ElasticSearch</b>

    linux安裝配置ElasticSearch之源碼安裝

    ElasticSearch是基于Lucene這個(gè)非常成熟的索引方案,另加上一些分布式的實(shí)現(xiàn):集群,sharding,replication等。以下是對其采用源碼安裝的方法1.下載
    發(fā)表于 01-11 17:27

    MPLAB仿真程序崩潰

    您好,首先我要說的是,我非常新的PIC編程。我已經(jīng)更改了一個(gè)源代碼(從PIC10F202),以便PIC10F322的同義詞適合于MPLAB ID.V892。我想調(diào)試現(xiàn)在的調(diào)試器& gt;選擇
    發(fā)表于 04-03 13:29

    ElasticSearch的初步環(huán)境

    ElasticSearch最實(shí)用入門指南——初步環(huán)境
    發(fā)表于 03-31 11:32

    基于同義詞典的裝備信息集成應(yīng)用研究

    本文分析了信息化條件下我軍裝備信息系統(tǒng)集成中存在的數(shù)據(jù)不同一的問題,介紹了數(shù)據(jù)同義詞典(thesaurus)的定義與設(shè)計(jì)方法,說明了數(shù)據(jù)同義詞典在裝備信息系統(tǒng)設(shè)計(jì)中的作用
    發(fā)表于 12-22 13:40 ?12次下載

    什么是跨導(dǎo)放大器(Transconductance Ampl

    什么是跨導(dǎo)放大器(Transconductance Amplifier) 將電壓轉(zhuǎn)換為電流的放大器, 另外還有其它幾個(gè)名稱(請參考同義詞列表)。其中一個(gè)同義詞是OT
    發(fā)表于 04-20 23:08 ?1.1w次閱讀
    什么是跨導(dǎo)放大器(Transconductance Ampl

    elasticsearch介紹PPT

    elasticsearch介紹PPT
    發(fā)表于 12-13 21:05 ?20次下載

    自然語言處理技術(shù)入門之基于關(guān)鍵生成文本的技術(shù)實(shí)現(xiàn)過程

    本章第一節(jié)就介紹基于關(guān)鍵生成一段文本的一些處理技術(shù)。其主要是應(yīng)用關(guān)鍵提取、同義詞識別等技術(shù)來實(shí)現(xiàn)的。下面就對實(shí)現(xiàn)過程進(jìn)行說明和介紹。
    的頭像 發(fā)表于 12-26 18:12 ?1.1w次閱讀
    自然語言處理技術(shù)入門之基于關(guān)鍵<b class='flag-5'>詞</b>生成文本的技術(shù)實(shí)現(xiàn)過程

    哈工大PyLTP工具實(shí)踐:NLP任務(wù)中四大必備技術(shù)(附代碼

    相信從事NLP、數(shù)據(jù)挖掘、知識圖譜等領(lǐng)域的博友都知道哈工大LTP、同義詞林這些工具,該系列文章也會(huì)介紹相關(guān)的知識,希望對您有所幫助。
    的頭像 發(fā)表于 07-18 11:22 ?4581次閱讀

    加密貨幣謬論是怎么回事

    雖然貨幣和金錢是經(jīng)常使用的同義詞,但它們有不同的含義:貨幣是價(jià)值交換系統(tǒng)。
    發(fā)表于 10-28 08:45 ?857次閱讀

    EDA增強(qiáng)數(shù)據(jù)的方法

    隨機(jī)從句子中抽取n個(gè)(抽取時(shí)不包括停用詞),然后隨機(jī)找出抽取這些同義詞,用同義詞將原詞替換。
    發(fā)表于 05-25 14:55 ?956次閱讀

    ElasticSearch是什么?應(yīng)用場景是什么?

    ElasticSearch是什么 ElasticSearch的功能 ElasticSearch的應(yīng)用場景 ElasticSearch的特點(diǎn)
    的頭像 發(fā)表于 10-09 18:38 ?2649次閱讀

    射頻設(shè)計(jì)中“Bypass”和“Decoupling”的概念

    而且“Bypass”和“Decoupling”很多時(shí)候結(jié)構(gòu)類似,很多人也將“Bypass電容”與“Decoupling電容”用做同義詞,不過二者的使用目的和設(shè)計(jì)考慮是不同的。
    發(fā)表于 10-10 17:30 ?3668次閱讀

    淺談封裝基板和PCB的區(qū)別和關(guān)系

    PCB(printed ciruid board)是指搭載了電子元器件的PWB的整個(gè)基板為印制電路板。在多數(shù)情況下,通常將PWB與PCB按同義詞處理而不加區(qū)分。
    發(fā)表于 03-16 11:29 ?2w次閱讀

    Elasticsearch保姆級入門

    我們需要?jiǎng)?chuàng)建一個(gè)供 Elasticsearch 和 Kibana 使用的 network。這個(gè) network 將被用于 Elasticsearch 和 Kibana 之間的通信。
    的頭像 發(fā)表于 09-01 15:24 ?1025次閱讀
    <b class='flag-5'>Elasticsearch</b>保姆級入門
    主站蜘蛛池模板: 在线观看视频播放 | 女生扒开尿口让男生舔 | 丁香花在线视频 | 91久久国产青草亚洲 | 亚洲国产日韩女人aaaaaa毛片在线 | 黄色三级视频网站 | 狠狠色噜噜狠狠狠狠888奇米 | 四虎永久在线精品网址 | 日韩一级欧美一级一级国产 | 野外啪啪抽搐一进一出 | 亚洲第一页国产 | 国产精品福利午夜在线观看 | 中文字幕第页 | 99久久香蕉国产综合影院 | 四虎影院最新地址 | 四虎永久免费影院 | 爱爱小说视频永久免费网站 | 欧美精品四虎在线观看 | 在线色色视频 | 伊人网综合视频 | 国产一区在线mmai | 午夜高清在线观看免费6 | 小泽玛利亚厕所大喷水 | 天天干天天插天天 | 中文网丁香综合网 | 乱码中文字幕人成在线 | 亚洲最新在线观看 | 手机看片日韩高清1024 | 午夜视频网站在线观看 | 日韩三级视频在线观看 | 水果视频色版 | 天天爱天天干天天 | 午夜在线视频网站 | 久久亚洲成人 | 手机在线观看免费视频 | 成人国产日本亚洲精品 | 91美女在线播放 | 欧美一级高清免费播放 | 羞羞爱爱| 91精品欧美激情在线播放 | 日本三级黄在线观看 |