利用SOLR搭建企業搜索平臺 之——solr的查詢語法

    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 搜尋使用 「*」 符號; 若是輸入 「中國*銀」 (不包含」號), 結果會有中國信託商業銀行, 中國輸出入銀行圖書閱覽室, 中國商銀證券

  中國及銀之間可夾任何長短字詞.

相關文章
相關標籤/搜索