模糊搜索
模糊分析介紹
模糊搜索是指在用戶搜索意圖不明確時,搜索引擎將用戶的查詢(query)與待檢索的內(nèi)容(doc)進行模糊匹配,找出與查詢相關的內(nèi)容。是否相關主要從兩個方面衡量:一是query是doc中某些內(nèi)容的全拼或者簡拼;二是query中內(nèi)容直接在doc中出現(xiàn)。模糊搜索無法精確理解用戶的查詢意圖,返回的結果中可能包括了一大批用戶不想要的信息,所以在使用模糊搜索時一定要結合自己的實際場景,慎重使用。
溫馨提示
模糊分析器對應的字段類型只能是:SHORT_TEXT類型。
模糊分詞查詢一般使用單引號查詢,有以下文檔中描述的具體需求的,才需要使用雙引號查詢。
適用場景
模糊搜索主要應用于用戶搜索意圖不明確或者數(shù)據(jù)較少,且想返回較多的查詢結果的時候。主要包括以下場景。
拼音搜索
介紹:拼音搜索是指doc中的數(shù)據(jù)為中文,而希望使用全拼或者簡拼進行查詢的搜索。
案例:
文檔內(nèi)容為:開放搜索
query分別為:”kai”、”kaifang”、”sousuo”、“kaifangsousuo”、”k”、”kf”、”ss”、”kfss”,
均能將此條doc召回
注意事項:
拼音搜索查詢時使用雙引號查詢
如果希望搜索內(nèi)容在doc中是相連的,建議在查詢詞兩邊加上雙引號。拼音搜索中查詢詞兩邊最好都使用雙引號,這是因為用戶輸入的拼音是具有一定的意圖的,用戶搜索”kfss”(開放搜索)其實是希望這些詞是要連在一起的。
前綴搜索
介紹:前綴搜索是指搜索以指定前綴開頭的內(nèi)容的檢索。
案例:
#模糊搜索支持的前綴標識符為’^’,如果用戶想搜以138開頭的手機號
query可寫成”^138”(注意是雙引號查詢)
注意事項:
不支持中文前綴匹配,
前綴匹配時,query需要用雙引號。
后綴匹配
介紹:后綴搜索是指搜索以指定后綴結尾的內(nèi)容的檢索。
案例:
#模糊搜索支持的后綴標識符為’$’,如果用戶想搜以9527結尾的手機號
query可以寫成”9527$”(注意是雙引號查詢)
注意事項:
不支持中文后綴匹配,
后綴匹配時,query需要用雙引號。
單字或單字母搜索
介紹:模糊搜索支持單字或單字母搜索。單字或單字母這種使用場景主要是為了擴大召回結果,返回的結果可能不是很準確。
案例:
#文檔內(nèi)容為:’開放搜索 open search’
query=default:’放’或者 query=default:’o’都能將其召回
短語查詢
介紹:短語查詢按雙引號限制位置關系,并且只有連續(xù)的字母和數(shù)字可以用短語查詢。
案例:
#1.query=default:"開放搜索"
僅能召回文檔內(nèi)容為“xxx開放搜索xxx”的文檔,不能召回“xxx搜索開放xxx”的文檔;
#2.query=default:"華為P"
不能召回“華為P20”的文檔,因為不符合“只有連續(xù)的字母和數(shù)字可以用短語查詢”的規(guī)則。這種場景請使用單引號進行查詢。
注意事項:
短語查詢使用雙引號
短語查詢召回的結果準確性更高,減少了文檔召回量(一般此類搜索場景建議使用中文通用分詞)比較消耗性能。
模糊搜索用于搜索意圖不明確或者數(shù)據(jù)較少想返回更多查詢結果的場景,因此除了拼音搜索、前后綴、以及短語查詢的場景,基本使用單引號。
使用限制
用戶創(chuàng)建應用時,將需要進行模糊搜索的字段設置為short_text,并給該字段設置一個模糊分析器即可使用模糊搜索。模糊搜索返回的結果默認按照命中的詞在字段的前后位置進行排序。比如某個應用的title字段需要模糊搜索,doc1的內(nèi)容為開放搜索,doc2的內(nèi)容為喜歡使用開放搜索,當搜索”kfss”時,doc1默認會排在doc2的前面。模糊搜索在用于查詢意圖不明確時能夠很好滿足用戶的需求,但在使用過程中需要注意如下限制:
查詢時只有英文、數(shù)字和拼音支持前綴和后綴搜索,中文不支持;
short_text字段中的標點符號會被過濾掉;
short_text字段過濾掉標點符號后,長度限制為100個字節(jié),超過的內(nèi)容會被丟掉;
short_text字段可以創(chuàng)建下拉提示;
由short_text字段創(chuàng)建的索引不能夠使用查詢分析。
如果short_text字段只使用了模糊分析器,沒有使用其他分析器建過索引,在取回的摘要中字段中的全角字符會被轉為半角字符,可以通過新建索引使用中文分析器規(guī)避這個問題。
英文和數(shù)字及拼音不支持飄紅。