solr的一些查詢語法

2021-08-23 13:22:22 字數 2185 閱讀 4727

solr 及 lucene 的 query 使用方法初級解說

1. 首先假設我的資料裡fields有:name, subbranch, tel, address 預設的搜尋是name這個字段, 如果要搜尋的資料剛好就是 name 這個字段,就不需要指定搜尋欄位名稱.

2. 查詢規則:

如欲查詢特定字段(非預設字段),請在查詢詞前加上該欄位名稱加 「:」 (不包含」號) 符號,

例如: address:台北台北市中正區重慶南路一段***號 tel:23***xx1

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:台北 台北市中正區重慶南路一段***號+tel:23***xx1&version=2.2&start=10&rows= 20&indent=on

4. indent代表輸出的xml要不要縮行.預設為開啟 on

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

所以結果會如下:

總統府郵局

台北15支

23******9

總統府23******1

3. 查詢 name 或 subbranch:直接輸入查詢詞, 如: 7-eleven 忠孝店

送出的內容即為:

name:7-eleven and subbrahch:忠孝店

4. 若要搜尋聯集結果,請在詞與詞間空格或加上大寫 「or」 (不包含」號).

例如: text:總統府 or text:郵局

text:總統府 or 郵局

或總統府 郵局

或name:總統府 or tel:23******3

或name:總統府 tel:23******3

5. 若要搜尋交集結果,請在詞與詞間加上大寫 「and」 或 「+」 (不包含」號).

例如: text:總統府 and text:郵局

或+text:總統府 +text:郵局

或name:總統府 and tel:23******3

或name: ( +總統府 +郵局)

6. 排除查詢

在要排除的詞前加上 「-」 (不包含」號) 號

例如: 總統府 -郵局

搜尋結果不會有包含郵局的詞的結果在內

7. group 搜尋

使用 「()」 來包含乙個group

如希望搜尋在店名字段內同時有 「台北」(不包含」號) 及 「火車站」(不包含」號)

8. 增加權重: 如要搜尋 「中華 加油站」(不包含」號) 但因為回傳太多筆資料內有 「中華」(不包含」號) 或 「加油站」(不包含」號) 的結果,

所以想要把有包含 「加油站」(不包含」號)的資料往前排,可使用 「^」(不包含」號)符號在後面加上愈增加的權重數,

像是 「2″,則可以這樣做:

中華 加油站^2

會同時搜尋含有中華或加油站的結果,並把加油站這個詞加權所以搜尋時會先判斷加油站這乙個詞在

搜尋結果中的比重,甚至假設一筆資料內加油站出現過兩次以上的就更加會有優先權.

查詢時在查詢詞後加上 「^」 (不包含」號) 再加上權重分數

例如: 總統府 and 「郵局」^2

或總統府^2 or 郵局

9. wildcard 搜尋使用 「*」 符號; 如果輸入 「中國*銀」 (不包含」號), 結果會有中國信託商業銀行, 中國輸出入銀行圖書閱覽室, 中國商銀證券

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

10. 當然還有一些更深入的用法,這裡只是初級的解說,若有興趣可以看看 lucene 或 solr的 document.

**一台灣網友的blog,現已打不開,這是google的網頁快照上的內容。

solr的一些查詢語法

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

Solr的一些查詢引數

fl 是逗號分隔的列表,用來指定文件結果中應返回的field集。預設為 指所有的字段。deftype 指定query parser,常用deftype lucene,deftype dismax,deftype edismax q query。q.alt 當q欄位為空時,用於設定預設的query,通...

solr查詢語法(一)

常用 不常用 其它 http localhost 8080 solr primary select?q http localhost 8080 solr primary select?q fl productid表示 查詢所有記錄,只返回productid欄位 http localhost 8080...