最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

elasticsearch如何使用Ngram實現(xiàn)任意位數(shù)手機號搜索

 更新時間:2024年05月17日 09:35:38   作者:it噩夢  
Ngram是一種基于統(tǒng)計語言模型的算法,Ngram基本思想是將文本里面的內容按照字節(jié)大小進行滑動窗口操作,形成長度是N的字節(jié)片段序列,這篇文章主要介紹了elasticsearch使用Ngram實現(xiàn)任意位數(shù)手機號搜索,需要的朋友可以參考下

Ngram自定義分詞案例

當對keyword類型的字段進行高亮查詢時,若值為123asd456,查詢sd4,則高亮結果是<em>123asd456<em>。那么,有沒有辦法只對sd4高亮呢?用一句話來概括問題:明明只想查詢ID的一部分,但高亮結果是整個ID串,此時應該怎么辦?

實戰(zhàn)問題拆解

###定義索引
PUT my_index_0602
{
  "mappings": {
    "properties": {
      "phoneNum": {
        "type": "keyword"
      }
    }
  }
}
####批量寫入數(shù)據(jù)
POST my_index_0602/_bulk
{"index":{"_id":1}}
{"phoneNum":"13511112222"}
{"index":{"_id":2}}
{"phoneNum":"13844248474"}
###執(zhí)行模糊檢索和高亮顯示
POST my_index_0602/_search
{
  "highlight": {
    "fields": {
      "phoneNum": {}
    }
  },
  "query": {
    "bool": {
      "should": [
        {
          "wildcard": {
            "phoneNum": "*1111*"
          }
        }
      ]
    }
  }
}

高亮檢索結果如下。

也就是說,整個字符串都呈現(xiàn)為高亮狀態(tài)了,沒有達到預期。

檢索過程中選擇使用wildcard是為了解決子串匹配的問題,wildcard的實現(xiàn)邏輯類似于MySQL的like模糊匹配。傳統(tǒng)的text標準分詞器,包括中文分詞器ik、英文分詞器english、standard等都不能解決上述子串匹配問題。

而實際業(yè)務需求是這樣的:一方面要求輸入子串能召回全串;另一方面要求檢索的子串實現(xiàn)高亮。對此,只能更換一種分詞來實現(xiàn),即Ngram。

Ngram分詞器定義

Ngram分詞定義

Ngram是一種基于統(tǒng)計語言模型的算法。Ngram基本思想是將文本里面的內容按照字節(jié)大小進行滑動窗口操作,形成長度是N的字節(jié)片段序列。此時每一個字節(jié)片段稱為gram。對所有gram的出現(xiàn)頻度進行統(tǒng)計,并且按照事先設定好的閾值進行過濾,形成關鍵gram列表,也就是這個文本的向量特征空間。列表中的每一種gram就是一個特征向量維度。

該模型基于這樣一種假設,第N個詞的出現(xiàn)只與前面N-1個詞相關,而與其他任何詞都不相關,整句的概率就是各個詞出現(xiàn)概率的乘積。這些概率可以通過直接從語料中統(tǒng)計N個詞同時出現(xiàn)的次數(shù)得到。常用的是二元的Bi-Gram(二元語法)和三元的Tri-Gram(三元語法)。

Ngram分詞示例

以“你今天吃飯了嗎“這一中文句子為例,它的Bi-Gram分詞結果如下。

Ngram分詞應用場景

場景1:文本壓縮、檢查拼寫錯誤、加速字符串查找、文獻語種識別。

場景2:自然語言處理自動化領域得到新的應用。如自動分類、自動索引、超鏈的自動生成、文獻檢索、無分隔符語言文本的切分等。

場景3:自然語言的自動分類功能。針對Elasticsearch檢索,Ngram針對無分隔符語言文本的分詞(比如手機號檢索),可提高檢索效率(相較于wildcard檢索和正則匹配檢索來說)

Ngram分詞實戰(zhàn)

###定義索引
PUT my_index_0603
{
    "settings":{
        "number_of_shards":1,
        "number_of_replicas":0,
        "index.max_ngram_diff" : 10,
        "analysis":{
            "analyzer":{
                "phoneNo_analyzer":{
                    "tokenizer": "phoneNo_analyzer"
                }
            },
            "tokenizer":{
                "phoneNo_analyzer":{
                    "type": "ngram",
                    "min_gram": 4,
                    "max_gram": 11,
                    "token_chars": [
                        "letter","digit"
                    ]
                }
            }
        }
    },
    "mappings":{
        "dynamic":"strict",
        "properties":{
            "phoneNo":{
                "type":"text",
                "analyzer": "phoneNo_analyzer"
            }
        }
    }
}
####批量寫入數(shù)據(jù)
POST my_index_0603/_bulk
{"index":{"_id":1}}
{"phoneNo":"13511112222"}
{"index":{"_id":2}}
{"phoneNo":"13844248474"}
POST my_index_0603/_analyze
{
  "analyzer": "phoneNo_analyzer",
  "text": "13511112222"
}
POST my_index_0603/_search
{
  "highlight": {
    "fields": {
      "phoneNo": {}
    }
  },
  "query": {
    "bool": {
      "should": [
        {
          "match_phrase": {
            "phoneNo": "1111"
          }
        }
      ]
    }
  }
}

到此這篇關于elasticsearch如何使用Ngram實現(xiàn)任意位數(shù)手機號搜索的文章就介紹到這了,更多相關elasticsearch任意位數(shù)手機號搜索內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 微信支付--簽名錯誤問題的解決方法

    微信支付--簽名錯誤問題的解決方法

    這篇文章主要介紹了微信支付--簽名錯誤問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • Iris 環(huán)境搭建詳細教程(最新版Go&IDEA&IrisV12)

    Iris 環(huán)境搭建詳細教程(最新版Go&IDEA&IrisV12)

    這篇文章主要介紹了Iris 環(huán)境搭建(最新版Go&IDEA&IrisV12),本文通過示例圖文相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • 各種語言常用的一句話判斷代碼

    各種語言常用的一句話判斷代碼

    提供各種語言常用的一句話判斷代碼:一句話就能判斷是不是含有中文、一句話就能判斷是不是純數(shù)字、一句話就能判斷是不是閏年、一句話就能判斷記錄分多少頁
    2013-03-03
  • idea激活碼最新獲取方法(idea2020激活碼匯總)

    idea激活碼最新獲取方法(idea2020激活碼匯總)

    針對idea激活碼失效的情況,我們給大家?guī)碜钚碌膇dea激活碼以及相關激活教程,分享最新idea激活參數(shù)等信息。
    2020-02-02
  • 支付寶小程序向用戶發(fā)紅包的實現(xiàn)方法

    支付寶小程序向用戶發(fā)紅包的實現(xiàn)方法

    這篇文章主要介紹了支付寶小程序向用戶發(fā)紅包的實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 最新Adobe?2022全新上線?Adobe?2022永久免費使用教程

    最新Adobe?2022全新上線?Adobe?2022永久免費使用教程

    目前adobe2022的配置要求CPU至少是四核,運行內存至少是16GB,只支持windows10系統(tǒng),版本號是1809以及更高的版本,下面跟隨小編看下最新Adobe?2022全新上線?Adobe?2022永久免費使用教程,感興趣的朋友一起看看吧
    2021-12-12
  • AIGC與虛擬現(xiàn)實(VR)的結合與應用前景分析

    AIGC與虛擬現(xiàn)實(VR)的結合與應用前景分析

    隨著AIGC與VR技術的不斷進步,兩者的結合為教育、娛樂、醫(yī)療等領域帶來了新機遇,AIGC可以自動生成文本、圖像等內容,結合VR技術,為用戶提供更加豐富和互動的體驗,本文探討了AIGC與VR的結合方式、應用案例和未來發(fā)展趨勢
    2024-11-11
  • lambda 表達式導致 Arthas 無法 redefine 的問題

    lambda 表達式導致 Arthas 無法 redefine 的問題

    這篇文章主要介紹了lambda 表達式導致 Arthas 無法 redefine 的問題,本文通過圖文實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 使用Windows自帶的IIS服務搭建本地站點并遠程訪問的操作方法

    使用Windows自帶的IIS服務搭建本地站點并遠程訪問的操作方法

    在Windows系統(tǒng)中實際上集成了建立網站所必須的軟件環(huán)境,今天就讓我們來看看,如何使用Windows自帶的網站程序建立網站吧,感興趣的朋友一起看看吧
    2023-12-12
  • WebStorm安裝配置教程

    WebStorm安裝配置教程

    WebStorm 是jetbrains公司旗下一款JavaScript開發(fā)工具,這篇文章主要為大家詳細介紹了WebStorm安裝教程,文中安裝步驟非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評論

乌兰浩特市| 南岸区| 黔江区| 丰城市| 讷河市| 固原市| 从化市| 涟水县| 会理县| 肃宁县| 佛山市| 五寨县| 蕉岭县| 陆良县| 北票市| 通化县| 治县。| 密云县| 庆元县| 邹城市| 沐川县| 剑阁县| 两当县| 金堂县| 修武县| 台中县| 福州市| 长宁区| 尖扎县| 乐平市| 九寨沟县| 秀山| 贵阳市| 鱼台县| 江油市| 杨浦区| 仙游县| 娱乐| 延寿县| 岳池县| 清苑县|