solr的模糊搜尋主要有萬用字元,範圍查詢,近距離搜尋等幾類。下面分別**一下用法。
萬用字元只是對單個term有效,對短語不起作用,ps:短語就是在查詢條件上加雙引號,比如 title:」*** yyy」。
其實也就跟一般的萬用字元的匹配方式差不多了,比如我要查詢title裡有evaluat開頭的文件:
title
:evaluat*
note that:查詢語句裡一定要用小寫,還沒研究清楚大小寫的區分,但是用大寫的不行
另外萬用字元有很大的效能開銷,尤其在匹配到大量資料時,比如:e*,建議不要這樣用。
其他例子:
solr in action 例子:
query: offi* matches office, officer, official, and so on
query: off*r matches offer, officer, officiator, and so on
query: off?r matches offer, but not officer
works: softwar* eng?neering
does not work: "softwar* eng?neering"
範圍查詢可以支援時間範圍,數值範圍,字串範圍等
1. 時間範圍:
查詢2015-06-07t19:11:45z to 2015-06-10t19:11:45z這個範圍的文件,這裡要注意格式必須是solr的日期格式,也就是2015-06-07t19:11:45z這樣的格式,必須大寫to
數值範圍
query: yearsold:[18 to 21] matches 18, 19, 20, 21
文字範圍
source:[kyowa to kyowb]
實際匹配kyowa ….kyowb => a->b的範圍,也就是只能包含kyowa, kyowb這兩個單詞
solr in action 例子:
query: created:[2012-02-01t00:00.0z to
2012-08-02t00:00.0z]
query: title:[boat to boulder] matches boat, boil, book, boulder, etc.
query: price:[12.99
to14.99] matches 12.99, 13.000009, 14.99, etc
// 這是帶邊界的例子
query: yearsold: matches 19
and20 but not
18or
21query: yearsold:[18
to21} matches 18, 19, 20, but not
21
edit-distance searching
這主要是為了解決輸入錯誤的問題,比如輸入good時錯誤的輸入為goob了怎麼辦,solr用波浪…….
線來容錯,比如
source:kyowb~1
這裡本來要輸入kyowa,結果輸成了kyowb,那麼加上~1就能把正確的kyowa查詢出來,~n也就是允許有幾個編輯位置錯誤,這裡是1個位置錯誤,如果你輸入kyoab~1,就查詢不出來了,因為輸入錯誤兩個位置,這時就需要~2了,預設情況下是~2.
1個位置錯誤時:
2個位置錯誤時:
solr in action 例子:
query: administrator~1 matches within
one edit distance.
query: administrator~2 matches within
two edit distances. (this is the default
if no edit distance is provided.)
query: administrator~n matches within n edit distances.
please
鄰近搜尋(proximity searching)
這個功能主要用來解決短語的模糊搜尋問題,比如你要查詢chief executive officer,chief financial officer,chief marketing officer….等等如chief x officer的短語怎麼辦,用or連起來顯然麻煩,這就是鄰近搜尋的作用了,只需」chief officer」~1即可,~1表示chief officer之間最多只有乙個單詞,是最多,不是只有乙個,也可以是0個,如果有n個單詞,即~n,注意,一定要加雙引號,這才表示是短語,不然就是乙個term了。
solr in action 例子:
query: "chief officer"~1
– meaning: chief and officer must be a maximum of
one position away.
– examples: "chief executive officer", "chief financial officer"
query: "chief officer"~2
– meaning: chief and officer must be a maximum of
two edit distances away.
– examples: "chief business development officer",
"officer chief"
query: "chief officer"~n
– meaning: finds chief within n positions of officer.
zTree模糊搜尋
根據搜尋的值重新顯示整個ztree 1 輸入框 2 js chatgroupserarchbtn click function function doqueryalg4name value treeobj.shownodes nodelist 指定被顯示的節點 json 資料集合 if value ...
ztree模糊搜尋
1 方法 function 載入樹方法和事件 function searchdepart newdepartcontroller.do?gettreedata datatype json data success function list var setting check view data c...
全文模糊搜尋
1.對原文進行分詞,再通過相應的搜尋演算法進行查詢 主要是中文分詞,這裡推薦 2.資料庫方式,通過全文索引進行搜尋 建立全文索引的表的儲存引擎型別必須為myisam 問題是match against對中文模糊搜尋支援不是太好 新建乙個utf8 myisam型別的表並建立乙個全文索引 create t...