本文環境基於上一節。
and搜索
兩種用法:
apple AND banana
+apple +banana
【+是一元操作符,要求求后面的查詢部分必需在文檔中出現。AND是二元操作符,要求其左右兩端的查詢部分必需同時出現。交集】
示例:
OR搜索
兩種用法:
apple banana
apple OR banana
【Solr默認查詢詞之間是OR運算,無需指定參數。OR是二元運算符,要求左右兩端的查詢詞至少出現一個。並集】
示例:
排除詞項
兩種用法: apple banana -pie apple banana NOT pie
【在匹配apple和banana的文檔中刪除包含pie的文檔】
示例:
如果我不包含look
短語
用法:
可以使用其他運算符,僅僅把單個詞換成短語
示例:
組合表達式
終極奧義!!你可以胡亂組合成別人看不懂的查詢,提升你的逼格!!! apple AND (apricot OR (banana NOT banana-skin)) (+(red blue -green) +(white yellow -(+pink -black)))
模糊匹配-通配符
【*】匹配多個字符
【?】匹配一個字符
例如:
【注意:雖然通配符功能強大,但是使用不當會花銷巨大。!!在通配符之前指定的字符越多,查詢速度越快(lov*)!!執行首位通配符會花銷巨大(*ing)!!】
另外,通配符只適用於單個查詢詞,不適合短語!!
模糊匹配-區間
例如:查詢8到21歲的人 age:[8 TO 21]
示例:
模糊匹配-編輯距離搜索
這一部分對用戶輸入的文本進行細微修正。
Solr使用~來表示模糊編輯距離搜索。 查詢rea~匹配reason,mean等。 指定編輯距離: rea~1 匹配1個以內的編輯距離 rea~2 匹配2的以內的編輯距離,這是默認的 rea~N 匹配N個以內的編輯距離
示例:我故意把reason寫錯
模糊匹配-臨近距離搜索
查詢:"apple banana"~1 apple和banana之間最多間隔1個詞 查詢:"apple banana"~2 apple和banana之間最多間隔2個詞 查詢:"apple banana"~N apple和banana之間最多間隔N個詞
示例: