1. 首先假設個人數據裏fields有:name, tel, address 預設的搜尋是name這個字段, 若是要搜尋的數據恰好就是 name 這個字段,就不須要指定搜尋字段名稱.spa
2. 查詢規則:code
如欲查詢特定字段(非預設字段),請在查詢詞前加上該字段名稱加 「:」 (不包含」號) 符號,xml
例如: address:北京市海淀區上地軟件園 tel:88xxxxx1blog
1>. q表明query inputinput
2>. version表明solr版本(建議不要變更此變量)io
3>. start表明顯示結果從哪一筆結果資料開始,預設爲0表明第一筆, rows是說要顯示幾筆數據,預設爲10筆class
(由於有時查詢結果可能有幾百筆,但不須要顯示全部結果,因此預設是從第一筆開始到第十筆)變量
因此若要顯示第10到30筆就改成:軟件
http: //localhost:8080/solr/select/?indent=on&version=2.2&q=address:北京市海淀區上地軟件園+tel:88xxxxx1&version=2.2&start=10&rows= 20&indent=onselect
(indent表明輸出的xml要不要縮行.預設爲開啓 on)
3. 另外,要限定輸出結果的內容可用 「fl=」 加上你要的字段名稱,如如下這個範例:
http: //localhost:8080/solr/select/?indent=on&version=2.2&q=text:北京+ OR+text:億度&start=0&rows=10&fl=name,address,tel
在fl= 以後加上了name,adress,tel
因此結果會以下:
<result name=」response」 numFound=」1340″ start=」0″> <doc> <str name=」name」>北京億度</str> <str name=」address」>北京市海淀區上地軟件園</str> <str name=」tel」>88xxxxxx1</str> </doc> <doc> <str name=」name」>北京億度</str> <str name=」address」/> <str name=」tel」>88xxxxxx1</str> </doc> </result>
4. 若要搜尋聯集結果,請在詞與詞間空格或加上大寫 「OR」 (不包含」號).
例如: text:海淀 OR text:億度 name:億度 OR tel:88xxxxxx1
5. 若要搜尋交集結果,請在詞與詞間加上大寫 「AND」 或 「+」 (不包含」號).
例如: text:海淀 AND 億度 +text:海淀 +text:億度
或
name:億度 AND tel:88xxxxxx1
6. 排除查詢
在要排除的詞前加上 「-」 (不包含」號) 號
例如: 海淀 -億度
搜尋結果不會有包含億度的詞的結果在內
7. Group 搜尋
使用 「()」 來包含一個group
如但願搜尋在店名字段內同時有 「臺北」(不包含」號) 及 「火車站」(不包含」號)
8. 增長權重: 如要搜尋 「北京 加油站」(不包含」號) 但由於回傳太多筆資料內有 「中華」(不包含」號) 或 「加油站」(不包含」號) 的結果,
因此想要把有包含 「加油站」(不包含」號)的數據往前排,可以使用 「^」(不包含」號)符號在後面加上愈增長的權重數,
像是 「2″,則能夠這樣作:
北京 加油站^2
會同時搜尋含有北京或加油站的結果,並把加油站這個詞加權因此搜尋時會先判斷加油站這一個詞在
搜尋結果中的比重,甚至假設一筆數據內加油站出現過兩次以上的就更加會有優先權.
查詢時在查詢詞後加上 「^」 (不包含」號) 再加上權重分數
例如: 億度 AND 「北京」^2
或
億度^2 OR 北京
9. Wildcard 搜尋使用 「*」 符號; 若是輸入 「中國*銀」 (不包含」號), 結果會有中國信託商業銀行, 中國輸出入銀行圖書閱覽室, 中國商銀證券
中國及銀之間可夾任何長短字詞.