Solr查詢

solr的一些查詢語法
1. 首先假設個人數據裏fields有:name, subbranch, tel, address 預設的搜尋是name這個字段, 若是要搜尋的數據恰好就是 name 這個字段,就不須要指定搜尋字段名稱.
2. 查詢規則:
如欲查詢特定字段(非預設字段),請在查詢詞前加上該字段名稱加 「:」 (不包含」號) 符號,
例如: address:臺北臺北市中正區重慶南路一段xxx號 tel:23xxxxx1 xml

1. q表明query input
2. version表明solr版本(建議不要變更此變量)
3. start表明顯示結果從哪一筆結果資料開始,預設爲0表明第一筆, rows是說要顯示幾筆數據,預設爲10筆
(由於有時查詢結果可能有幾百筆,但不須要顯示全部結果,因此預設是從第一筆開始到第十筆)
因此若要顯示第10到30筆就改成:
http: //localhost:8080/solr/select/?indent=on&version=2.2&q=address:臺北 臺北市中正區重慶南路一段xxx號+tel:23xxxxx1&version=2.2&start=10&rows= 20&indent=on
4. indent表明輸出的xml要不要縮行.預設爲開啓 on input

5. 另外,要限定輸出結果的內容可用 「fl=」 加上你要的字段名稱,如如下這個範例:
http: //localhost:8080/solr/select/?indent=on&version=2.2&q=text:總統府+ OR+text:郵局&start=0&rows=10&fl=name,subbranch,tel
在fl=以後加上了name,subbranch,tel
因此結果會以下:
<result name=」response」 numFound=」1340″ start=」0″>
<doc>
<str name=」name」>總統府郵局</str>
<str name=」subbranch」>臺北15支</str>
<str name=」tel」>23xxxxxx9</str>
</doc> io

<doc>
<str name=」name」>總統府</str>
<str name=」subbranch」/>
<str name=」tel」>23xxxxxx1</str>
</doc>
</result> 變量

3. 查詢 name 或 subbranch:直接輸入查詢詞, 如: 7-eleven 忠孝店
送出的內容即爲:
name:7-eleven AND subbrahch:忠孝店 select

4. 若要搜尋聯集結果,請在詞與詞間空格或加上大寫 「OR」 (不包含」號).
例如: text:總統府 OR text:郵局
text:總統府 OR 郵局

總統府 郵局

name:總統府 OR tel:23xxxxxx3

name:總統府 tel:23xxxxxx3 語法

5. 若要搜尋交集結果,請在詞與詞間加上大寫 「AND」 或 「+」 (不包含」號).
例如: text:總統府 AND text:郵局

+text:總統府 +text:郵局

name:總統府 AND tel:23xxxxxx3

name: ( +總統府 +郵局) 數據

6. 排除查詢
在要排除的詞前加上 「-」 (不包含」號) 號
例如: 總統府 -郵局
搜尋結果不會有包含郵局的詞的結果在內 查詢

7. Group 搜尋
使用 「()」 來包含一個group
如但願搜尋在店名字段內同時有 「臺北」(不包含」號) 及 「火車站」(不包含」號) di

8. 增長權重: 如要搜尋 「中華 加油站」(不包含」號) 但由於回傳太多筆資料內有 「中華」(不包含」號) 或 「加油站」(不包含」號) 的結果,
因此想要把有包含 「加油站」(不包含」號)的數據往前排,可以使用 「^」(不包含」號)符號在後面加上愈增長的權重數,
像是 「2″,則能夠這樣作: solr

中華 加油站^2

會同時搜尋含有中華或加油站的結果,並把加油站這個詞加權因此搜尋時會先判斷加油站這一個詞在
搜尋結果中的比重,甚至假設一筆數據內加油站出現過兩次以上的就更加會有優先權.

查詢時在查詢詞後加上 「^」 (不包含」號) 再加上權重分數
例如: 總統府 AND 「郵局」^2

總統府^2 OR 郵局

9. Wildcard 搜尋使用 「*」 符號; 若是輸入 「中國*銀」 (不包含」號), 結果會有中國信託商業銀行, 中國輸出入銀行圖書閱覽室, 中國商銀證券 中國及銀之間可夾任何長短字詞.

相關文章
相關標籤/搜索