女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ElasticSearch同義詞代碼解析

馬哥Linux運維 ? 來源:稀土掘金 ? 2023-11-29 10:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

在我們的很多情況下,我們希望在搜索時,有時能夠使用一個詞的同義詞來進行搜索,這樣我們能搜索出來更多相關的內容。我們可以通過 text analysis 來幫助我們形成同義詞

索引時使用同義詞和搜索時使用同義詞的對比

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

索引時使用同義詞有幾個劣勢:

由于必須對所有同義詞進行索引,所以索引規模會變大。

搜索得分(依賴于字詞統計數據)可能會受影響,因為同義詞也會計算在內,所以不常見單詞的統計數據會存在偏差。

除非進行重新索引,否則無法針對既有文檔更改同義詞規則。

最后兩條尤其是巨大劣勢。索引時應用同義詞的唯一潛在好處是性能好,因為您在前期已費心完成了擴展過程,所以無需再在每次查詢時完成一遍擴展過程,這有可能致使需要與更多的字詞進行匹配。然而這一點在實踐中通常并非真正的問題。

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

索引規模不受影響。

語料庫中的字詞統計數據保持不變。

如需變更同義詞規則,無需對文檔進行重新索引。

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

一般而言,搜索時使用同義詞的優勢通常要高于索引時使用同義詞可能實現的微小性能改進。

然而,如果在搜索時使用同義詞,過去還需要注意另外一個問題。盡管更改同義詞規則不需要對文檔進行重新索引,但是如要更改的話,您必須暫時關閉再重新打開索引。這一點很有必要,因為分析器在下列時候才會創建實例:創建索引時,重啟節點時,以及重新打開已關閉的索引時。為了讓對同義詞規則文件所做的變更對索引可見,用戶必須首先在所有節點上更新文件,然后再關閉并重新打開索引。但是這個問題已經得以解決。

在查詢時對詞進行同義詞解析

es操作版本8.8.0


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


展示數據
"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": "中秋節"
            }
        },
        {
            "_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

上面我們一直在創建索引時直接指定同義詞列表。 但是,當你有大量同義詞時,將它們全部添加到索引中會很麻煩。 更好的方法是將它們存儲在一個文件中,然后動態地將它們加載到索引中。 使用同義詞文件有很多好處,其中包括:

方便維護大量的同義詞。

可以被不同的索引使用。

可以在不關閉索引的情況下動態重新加載

我們將創建的同義詞文件稱為 synonyms.txt,但可以任意命名,把同義詞維護進去,加載到es中 默認去讀取config目錄下

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

使用同義詞文件創建一個新索引,請注意我們將同義詞篩選器標記為了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眼仔"
        }
    }
}


響應:
{
    "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": "戴眼鏡"
                }
            }
        ]
    }
}

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 分析器
    +關注

    關注

    0

    文章

    93

    瀏覽量

    12706
  • 代碼
    +關注

    關注

    30

    文章

    4895

    瀏覽量

    70489
  • Elasticsearch
    +關注

    關注

    0

    文章

    30

    瀏覽量

    3000

原文標題:ElasticSearch同義詞解析

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Windows安裝ElasticSearch

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

    linux安裝配置ElasticSearch之源碼安裝

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

    MPLAB仿真程序崩潰

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

    ElasticSearch的初步環境

    ElasticSearch最實用入門指南——初步環境
    發表于 03-31 11:32

    基于同義詞典的裝備信息集成應用研究

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

    什么是跨導放大器(Transconductance Ampl

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

    elasticsearch介紹PPT

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

    自然語言處理技術入門之基于關鍵生成文本的技術實現過程

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

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

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

    加密貨幣謬論是怎么回事

    雖然貨幣和金錢是經常使用的同義詞,但它們有不同的含義:貨幣是價值交換系統。
    發表于 10-28 08:45 ?884次閱讀

    EDA增強數據的方法

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

    ElasticSearch是什么?應用場景是什么?

    ElasticSearch是什么 ElasticSearch的功能 ElasticSearch的應用場景 ElasticSearch的特點
    的頭像 發表于 10-09 18:38 ?2710次閱讀

    射頻設計中“Bypass”和“Decoupling”的概念

    而且“Bypass”和“Decoupling”很多時候結構類似,很多人也將“Bypass電容”與“Decoupling電容”用做同義詞,不過二者的使用目的和設計考慮是不同的。
    發表于 10-10 17:30 ?3834次閱讀

    淺談封裝基板和PCB的區別和關系

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

    Elasticsearch保姆級入門

    我們需要創建一個供 Elasticsearch 和 Kibana 使用的 network。這個 network 將被用于 Elasticsearch 和 Kibana 之間的通信。
    的頭像 發表于 09-01 15:24 ?1120次閱讀
    <b class='flag-5'>Elasticsearch</b>保姆級入門
    主站蜘蛛池模板: 鄂尔多斯市| 边坝县| 太仓市| 沂水县| 渑池县| 武汉市| 满城县| 黄骅市| 霍城县| 兴宁市| 遂平县| 屏山县| 托克托县| 彭山县| 平凉市| 鄂州市| 水城县| 丘北县| 临沧市| 无极县| 大邑县| 普定县| 巴中市| 平南县| 剑阁县| 衡阳市| 霍林郭勒市| 濉溪县| 朝阳县| 于都县| 洞头县| 北安市| 积石山| 革吉县| 岳池县| 虎林市| 敖汉旗| 桃园市| 潼关县| 峨眉山市| 广州市|