日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

Elasticsearch 電商場景:明明有這個(gè)關(guān)鍵詞,但是搜不出來,怎么辦?

來源: 責(zé)編: 時(shí)間:2024-05-16 09:08:51 142觀看
導(dǎo)讀1、實(shí)戰(zhàn)問題場景:電商創(chuàng)業(yè)公司(非傳統(tǒng)巨頭)讀者描述需求:content是一個(gè)text類型,用的 ik_max_word 分的詞,需要根據(jù)關(guān)鍵詞做精準(zhǔn)匹配,并且按照發(fā)布時(shí)間倒序。比如我搜:小米6s,搜出來的結(jié)果要精確匹配到:小米6s,并且按照用戶的發(fā)

1、實(shí)戰(zhàn)問題

  • 場景:電商創(chuàng)業(yè)公司(非傳統(tǒng)巨頭)
  • 讀者描述需求:

content是一個(gè)text類型,用的 ik_max_word 分的詞,需要根據(jù)關(guān)鍵詞做精準(zhǔn)匹配,并且按照發(fā)布時(shí)間倒序。rYo28資訊網(wǎng)——每日最新資訊28at.com

比如我搜:小米6s,搜出來的結(jié)果要精確匹配到:小米6s,并且按照用戶的發(fā)布時(shí)間倒序排序。rYo28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在的問題是用 match_pharse 搜索的時(shí)候,有時(shí)候文檔里明明有這個(gè)關(guān)鍵詞,但是搜不出來,嘗試了好幾種手段......rYo28資訊網(wǎng)——每日最新資訊28at.com

熟悉咱們公眾號推文的同學(xué)應(yīng)該知道,咱們分別在 2018年、2020年、2022年 都做過多次類似問題的討論。rYo28資訊網(wǎng)——每日最新資訊28at.com

探究 | 明明存在,怎么搜索不出來呢?rYo28資訊網(wǎng)——每日最新資訊28at.com

Elasticsearch能檢索出來,但不能正確高亮怎么辦?rYo28資訊網(wǎng)——每日最新資訊28at.com

由 Elasticsearch 空間換時(shí)間的線上問題說開去......rYo28資訊網(wǎng)——每日最新資訊28at.com

2、重新梳理一下檢索認(rèn)知

2.1 分詞和詞典的本質(zhì)

數(shù)據(jù)索引化的過程是借助分詞器完成的,如讀者的分詞器是 IK 中文分詞器。rYo28資訊網(wǎng)——每日最新資訊28at.com

問題來了?IK 中文分詞器能包含全部的詞匯嗎?rYo28資訊網(wǎng)——每日最新資訊28at.com

大家看 medcl 大佬開源的 IK 分詞器的源碼中能找到 main.dic 大小是 2.92 MB。并且這個(gè)詞典 8 年+ 沒有更新過。rYo28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片rYo28資訊網(wǎng)——每日最新資訊28at.com

顯然:IK 默認(rèn)詞典覆蓋不了全部詞匯,尤其諸如“顯眼包”、“小米14”、“奧利給”、“葉氏那拉”等的新詞。如下截圖是我自定義的詞典的詞庫檢索截圖。rYo28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片rYo28資訊網(wǎng)——每日最新資訊28at.com

再來一波舉例看看:rYo28資訊網(wǎng)——每日最新資訊28at.com

PUT my_index_0512{  "mappings": {    "properties": {      "title": {        "type": "text",        "analyzer": "ik_smart",        "fields": {          "keyword": {            "type": "keyword"          }        }      }    }  }}
POST my_index_0512/_bulk{"index":{"_id":1}}{"title":"奧利給是一個(gè)網(wǎng)絡(luò)流行詞,第一次出現(xiàn)在一名快手主播直播時(shí)說的正能量語錄里。"}## 分詞為:“奧利” 和 “給” 兩個(gè)詞POST my_index_0512/_analyze{  "text":"奧利給是一個(gè)網(wǎng)絡(luò)流行詞,第一次出現(xiàn)在一名快手主播直播時(shí)說的正能量語錄里。",  "analyzer":"ik_smart"}## 檢索不能召回結(jié)果,這里用 term 主要說明問題,合理性待商榷!POST my_index_0512/_search{  "profile": true,   "query": {    "term": {      "title": "奧利給"    }  }}

圖片圖片rYo28資訊網(wǎng)——每日最新資訊28at.com

結(jié)論:詞典決定分詞,詞典里沒有的詞,極大可能(有一定概率,比如:match_phrase 詞+詞組合的情況)檢索會檢索不到。rYo28資訊網(wǎng)——每日最新資訊28at.com

ps: 關(guān)于 term、match、match_phrase 區(qū)別等,推薦閱讀:檢索選型。rYo28資訊網(wǎng)——每日最新資訊28at.com

rYo28資訊網(wǎng)——每日最新資訊28at.com

2.2 全文檢索的本質(zhì)

全文檢索的本質(zhì)是查詢待檢索的關(guān)鍵詞在寫入所創(chuàng)建的索引中是否存在的過程。rYo28資訊網(wǎng)——每日最新資訊28at.com

存在,則召回;不存在,則返回空。rYo28資訊網(wǎng)——每日最新資訊28at.com

2.3 明明有這個(gè)關(guān)鍵詞,但是搜不出來的本質(zhì)

表面上可以看出,之前咱們2018年、2020年、2022年討論的方案用 match、match_phrase、match_phrase_prefix 等再結(jié)合 slop,貌似能解決一些問題,好像有些不召回的情況,可以召回了。rYo28資訊網(wǎng)——每日最新資訊28at.com

但,依然治標(biāo)不治本。依然會存在一些“新詞”、“詞典里沒有的詞”等看似明明一段話里存在的詞,就是檢索不到的原因。rYo28資訊網(wǎng)——每日最新資訊28at.com

3、能不能根治呢?

答案:不完全能!rYo28資訊網(wǎng)——每日最新資訊28at.com

但,可以嘗試空間換時(shí)間,借助 Ngram 能解決 99% 以上場景的問題。rYo28資訊網(wǎng)——每日最新資訊28at.com

針對讀者的問題,借助 Ngram 分詞實(shí)操一下:rYo28資訊網(wǎng)——每日最新資訊28at.com

### 3.1 創(chuàng)建索引DELETE new_spy_uat2PUT new_spy_uat2{  "settings": {    "index.max_ngram_diff": 10,    "analysis": {      "analyzer": {        "my_analyzer": {          "tokenizer": "my_tokenizer",          "char_filter": ["my_char_filter"]        }      },      "char_filter": {        "my_char_filter": {          "type": "pattern_replace",          "pattern": "[^//p{L}//p{N}//s]+",          "replacement": ""        }      },      "tokenizer": {        "my_tokenizer": {          "type": "ngram",          "min_gram": 2,          "max_gram": 10        }      }    }  },  "mappings": {    "properties": {      "content": {        "type": "text",        "analyzer": "my_analyzer",        "fields": {          "keyword": {            "type": "keyword"          }        }      }    }  }}

在提供的 Elasticsearch 配置中,my_tokenizer 是一個(gè)基于 n-gram 的分詞器,配置了從最小 2 個(gè)字符到最大 10 個(gè)字符的 n-gram。rYo28資訊網(wǎng)——每日最新資訊28at.com

在《一本書講透 Elasticsearch》第6.4 章節(jié) P111 解讀了自定義分詞器的三大核心組成:rYo28資訊網(wǎng)——每日最新資訊28at.com

  • character filter
  • tokenizer
  • token filter

咱們上面的“my_char_filter”定義了文本在分詞前進(jìn)行預(yù)處理的字符過濾規(guī)則。實(shí)際是使用正則表達(dá)式刪除所有非字母、非數(shù)字、非空格字符,只保留字母、數(shù)字和空白字符,中文字符是可以保留的。rYo28資訊網(wǎng)——每日最新資訊28at.com

N-gram 是一種分詞方法,通過從文本中提取 n 個(gè)連續(xù)字符的滑動(dòng)窗口來創(chuàng)建詞元(tokens)。這種方法在處理需要部分匹配和模糊搜索的應(yīng)用中非常有用,比如搜索建議和拼寫錯(cuò)誤的容錯(cuò)處理。rYo28資訊網(wǎng)——每日最新資訊28at.com

在這種配置下,文本會被分解成所有可能的 2 到 10 個(gè)字符的組合。rYo28資訊網(wǎng)——每日最新資訊28at.com

例如,要執(zhí)行如下檢索:rYo28資訊網(wǎng)——每日最新資訊28at.com

POST new_spy_uat2/_analyze{  "analyzer":"my_analyzer",  "text":"奧利給這幾年才流行"}

分詞結(jié)果如下:rYo28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片rYo28資訊網(wǎng)——每日最新資訊28at.com

這種方法可以大大增加索引的大小因?yàn)槊總€(gè)詞都被分解成多個(gè)子詞,但同時(shí)也提高了搜索的靈活性和準(zhǔn)確性,尤其是在搜索短文本或關(guān)鍵詞片段時(shí)。rYo28資訊網(wǎng)——每日最新資訊28at.com

rYo28資訊網(wǎng)——每日最新資訊28at.com

這樣的分詞器尤其適合于搜索引擎的自動(dòng)補(bǔ)全功能和處理用戶可能的輸入錯(cuò)誤,因?yàn)樗軌蛟谟脩糨斎氩糠中畔r(shí)就開始匹配相關(guān)的詞條。rYo28資訊網(wǎng)——每日最新資訊28at.com

3.2 導(dǎo)入數(shù)據(jù)

POST new_spy_uat2/_bulk{ "index" : { "_index" : "new_spy_uat2", "_id" : "1" } }{ "content" : "新品豪車??限1000單食物鏈巴氏小仙包犬濕糧360g 
                

本文鏈接:http://www.www897cc.com/showinfo-26-88368-0.htmlElasticsearch 電商場景:明明有這個(gè)關(guān)鍵詞,但是搜不出來,怎么辦?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 一文徹底搞明白中介模式

下一篇: 定時(shí)任務(wù)輕松搞定:使用Cron表達(dá)式和Quartz庫實(shí)現(xiàn)定時(shí)任務(wù)調(diào)度

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 石頭智能洗地機(jī)A10 Plus體驗(yàn):雙向自清潔治好了我的懶癌

    一、前言和介紹專為家庭請假懶人而生的石頭科技在近日又帶來了自己的全新旗艦新品,石頭智能洗地機(jī)A10 Plus。從這個(gè)產(chǎn)品名上就不難看出,這次石頭推出的并不是常見的掃地機(jī)器
  • 6月安卓手機(jī)性價(jià)比榜:Note 12 Turbo斷層式碾壓

    6月份有一個(gè)618,雖然這是京東周年慶的日子,但別的電商也都不約而同的跟進(jìn)了,反正促銷沒壞處,廠商和用戶都能滿意。618期間一些產(chǎn)品也出現(xiàn)了歷史低價(jià),那么各個(gè)價(jià)位段的產(chǎn)品性價(jià)比
  • 零售大模型“干中學(xué)”,攀爬數(shù)字化珠峰

    文/侯煜編輯/cc來源/華爾街科技眼對于絕大多數(shù)登山愛好者而言,攀爬珠穆朗瑪峰可謂終極目標(biāo)。攀登珠峰的商業(yè)路線有兩條,一是尼泊爾境內(nèi)的南坡路線,一是中國境內(nèi)的北坡路線。相
  • 拼多多APP上線本地生活入口,群雄逐鹿萬億市場

    Tech星球(微信ID:tech618)文 | 陳橋輝 Tech星球獨(dú)家獲悉,拼多多在其APP內(nèi)上線了“本地生活”入口,位置較深,位于首頁的“充值中心”內(nèi),目前主要售賣美食相關(guān)的
  • 10天營收超1億美元,《星鐵》比《原神》差在哪?

    來源:伯虎財(cái)經(jīng)作者:陳平安即便你沒玩過《原神》,你一定聽說過的它的大名。恨它的人把《原神》開服那天稱作是中國游戲史上最黑暗的一天,有粉絲因?yàn)樗髂嵩赑S平臺上線《原神》,怒而
  • 新電商三兄弟,“抖快紅”成團(tuán)!

    來源:價(jià)值研究所作 者:Hernanderz 隨著內(nèi)容電商的概念興起,抖音、快手、小紅書組成的“新電商三兄弟”成為業(yè)內(nèi)一股不可忽視的勢力,給阿里、京東、拼多多帶去了巨大壓
  • 當(dāng)家的盒馬,加速謀生

    來源 | 價(jià)值星球Planet作者 | 歸去來自己“當(dāng)家”的盒馬,開始加速謀生了。據(jù)盒馬官微消息,盒馬計(jì)劃今年開放生鮮供應(yīng)鏈,將其生鮮商品送往食堂。目前,盒馬在上海已經(jīng)與
  • 東方甄選單飛:有些鳥注定是關(guān)不住的

    作者:彭寬鴻來源:華爾街科技眼‍‍‍‍‍‍‍‍‍‍東方甄選創(chuàng)始人俞敏洪帶隊(duì)的“7天甘肅行”直播活動(dòng)已在近日順利收官。成立后一
  • OPPO K11樣張首曝:千元機(jī)影像“卷”得真不錯(cuò)!

    一直以來,OPPO K系列機(jī)型都保持著較為均衡的產(chǎn)品體驗(yàn),歷來都是2K價(jià)位的明星機(jī)型,去年推出的OPPO K10和OPPO K10 Pro兩款機(jī)型憑借各自的出色配置,堪稱有
Top 主站蜘蛛池模板: 凤冈县| 读书| 鄯善县| 淮滨县| 东乌珠穆沁旗| 乌拉特前旗| 宜兰县| 会同县| 濉溪县| 临城县| 建阳市| 盐津县| 西乌| 嫩江县| 阳朔县| 武川县| 沧州市| 万安县| 武陟县| 岚皋县| 潞西市| 阜城县| 辽源市| 浦江县| 兴隆县| 尼木县| 泰和县| 珲春市| 呼图壁县| 西昌市| 平度市| 苏尼特左旗| 丰台区| 商洛市| 安新县| 绩溪县| 民权县| 城口县| 萨迦县| 吉木乃县| 勃利县|