日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能

發布時間:2024/4/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先看一下從淘寶輸入搜索keyword獲取到的一些數據信息:


第一張:使用拼音的全程來查詢 能夠看到提示的是匹配的轉換的拼音的方式,看最后一個提示項 這里另一個在指定分類文件夾下搜索的功能,難道后臺還存儲的類目的信息?

另一個標簽的信息要存儲

第二使用首字母來匹配 這里看不出來 淘寶的東西太多了,首字母直接有了相應的全程


第三使用切斷字母的匹配 看的出來 走的還是全然匹配的路徑



第四使用漢字匹配的方法 : ?這個沒得說的 這是主功能了


第五使用 拼音加漢字的方式: 可以匹配到 使用所有的拼音時 這里能看出來是使用了轉換的方法了 先將漢字轉為拼音 在去匹配

第六 這里使用部分 ?這個沒啥問題 轉成拼音后 ?shouta*



第七 這里應該是先轉成拼音 為 stao 看以下一張圖搜索結果是吻合的,可是結果太少了, 這里淘寶因該使用了另外的搜索機制了.假設這樣的方法搜索到的數量不夠,那么就使用查詢模式 即 再放一個分詞的字段用來查詢, 我想是分成一個一個的模式 也就是搜索 s 套了 這里不須要考慮順序了 詞中含有這兩個就能夠了 就是以下的結果了


這里和上面說的是一個道理 從這里 大家應按能猜出來 搜索shtao是沒有結果的,能夠驗證下 假設有興趣

這里看到沒有提示結果,就是沒有了 依照推測出來的兩種搜索方式
淘寶處理 對于拼音加漢字問題 應該是使用了雙重查詢 ,保證漢字是正確匹配的(應該使用的是當個分詞字段) 然后再進行漢字轉為拼音后的過濾,

學到一點解決拼音加漢字搜索建議的解決方法 新加入一個字段使用全然分詞模式即 分成一個 一個 用來做漢字匹配過濾查詢 然后再用漢字轉拼音查詢 ?當數量不夠時再使用一次檢索查詢 含有keyword就可以 不要求位置在首位
以下是自己的搜索建議改造拼音加漢字的改寫
1.加入一個漢字單個分詞的字段 schema.xml中配置 <fieldtype?name="ng1_1"?class="solr.TextField"?positionIncrementGap="100"> <analyzer> <tokenizer?class="solr.NGramTokenizerFactory"?minGramSize="1"?maxGramSize="1"/> <filter?class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldtype> <!--?單個分詞?保證漢字正確性--> <field?name="word_n1"?type="ng1_1"?indexed="true"?stored="false"/> <copyField?source="word"?dest="word_n1"/>

2.代碼中加入過濾部分 //這里加入過濾--要包括的漢字--使用filter添加查詢速度 if(StringFilterUtils.filterAll(q)!=null?&&?StringFilterUtils.filterAll(q).trim().length()>0){ query.set(CommonParams.FQ,?BaseSuggestIndex.Fd.word_n1.name()+":"+StringFilterUtils.filterAll(q).trim()); }

對照搜索條件




未優化前


優化后



能夠發現漢字輸入不對,就不能出來提示了 以下是一些輸入正確的出來的結果








轉載于:https://www.cnblogs.com/gccbuaa/p/7306195.html

總結

以上是生活随笔為你收集整理的solr入门之參考淘宝搜索提示功能优化拼音加汉字搜索功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。