Solr常用查詢語法筆記

2021-09-23 21:25:19 字數 2854 閱讀 6486

q- 查詢字串,這個是必須的。如果查詢所有*:*,根據指定字段查詢(name:張三 and address:北京

fq- (filter query)過慮查詢,作用:在q查詢符合結果中同時是fq查詢符合的,例如:q=name:張三&fq=createdate:[20151001 to 20151031]

fl- 指定返回那些字段內容,用逗號或空格分隔多個。 

start- 返回第一條記錄在完整找到結果中的偏移位置,0開始,一般分頁用。 

rows- 指定返回結果最多有多少條記錄,配合start來實現分頁。 

sort- 排序,格式:sort=+[,+]… 。示例:(score desc, price asc)表示先 「score」 降序, 再 「price」 公升序,預設是相關性降序。 

wt- (writer type)指定輸出格式,可以有xml,json,php,phps。 

fl表示索引顯示那些field(*表示所有field,如果想查詢指定欄位用逗號或空格隔開(如:name,sku,shortdescription或name sku shortdescription【注:欄位是嚴格區分大小寫的】)) 

q.op表示q 中 查詢語句的 各條件的邏輯操作 and(與) or(或) 

hl是否高亮 ,如hl=true

hl.fl高亮field ,hl.fl=name,sku

hl.snippets:預設是1,這裡設定為3個片段

hl.******.pre高亮前面的格式 

hl.******.post高亮後面的格式 

facet是否啟動統計 

facet.field統計field 

1. 「:」 指定字段查指定值,如返回所有值*:*

2. 「?」 表示單個任意字元的通配

3. 「*」 表示多個任意字元的通配(不能在檢索的項開始使用*或者?符號)

4. 「~」 表示模糊檢索,如檢索拼寫類似於」roam」的項這樣寫:roam~將找到形如foam和roams的單詞;roam~0.8,檢索返回相似度在0.8以上的記錄。

5. 鄰近檢索,如檢索相隔10個單詞的」apache」和」jakarta」,」jakarta apache」~10

6. 「^」 控制相關度檢索,如檢索jakarta apache,同時希望去讓」jakarta」的相關度更加好,那麼在其後加上」^」符號和增量值,即jakarta^4 apache

7. 布林操作符and、||

8. 布林操作符or、&&

9. 布林操作符not、!、- (排除操作符不能單獨與項使用構成查詢)

10. 「+」 存在操作符,要求符號」+」後的項必須在文件相應的域中存在

11. ( ) 用於構成子查詢

12. 包含範圍檢索,如檢索某時間段記錄,包含頭尾,date:[200707 to 200710]

13. {} 不包含範圍檢索,如檢索某時間段記錄,不包含頭尾

date:

14. / 轉義操作符,特殊字元包括+ - && || ! ( ) [ ] ^ 」 ~ * ? : /

注:①「+」和」-「表示對單個查詢單元的修飾,and 、or 、 not是對兩個查詢單元是否做交集或者做差集還是取反的操作的符號

比如:ab:china +ab:america,表示的是ab:china忽略不計可有可無,必須滿足第二個條件才是對的,而不是你所認為的必須滿足這兩個搜尋條件

如果輸入:ab:china and ab:america ,解析出來的結果是兩個條件同時滿足,即+ab:china and +ab:america或+ab:china +ab:america

1.最普通的查詢,比如查詢姓張的人(name:張),如果是精準性搜尋相當於sql server中的like搜尋這需要帶引號(""),比如查詢含有北京的(address:"北京")

2.多條件查詢,注:如果是針對單個字段進行搜尋的可以用(name:搜尋條件加運算子(or、and、not) name:搜尋條件),比如模糊查詢(name:張 or name:李)單個欄位多條件搜尋不建議這樣寫,一般建議是在單個欄位裡進行條件篩選,如(name:張 or 李),多個字段查詢(name:張 + address:北京

3.排序,比如根據姓名公升序(name asc),降序(name desc

solr查詢語法

首先假設我的資料裡fields有 name,subbranch,tel,address 預設的搜尋是name這個字段,如果要搜尋的資料剛好就是 name 這個字段,就不需要指定搜尋欄位名稱.2.查詢規則 如欲查詢特定字段 非預設字段 請在查詢詞前加上該欄位名稱加 不包含 號 符號,例如 addres...

solr查詢語法

區間範圍查詢 組合 區間條件 if minprice.intvalue 0 maxprice 0 1.首先假設我的資料裡fields有 name,subbranch,tel,address 預設的搜尋是name這個字段,如果要搜尋的資料剛好就是 name 這個字段,就不需要指定搜尋欄位名稱.2.查詢...

Solr 查詢語法

摘要 預設的solr查詢語法擴充套件了lucene的語法,其目的也就是檢索索引。solr的查詢用到了引數q,標準的查詢語法就想下面這樣 可以使用debug query來分析查詢過程 debug 一般來說,response會包含匹配程度最好的文件,但是上面例子中,沒有文件滿足這一查詢。在debug資訊...