solr的一些查询语法
以下內容來自solr中國
?
1.1. 首先假設我的數據里fields有:name, tel, address 預設的搜尋是name這個字段, 如果要搜尋的數據剛好就是 name 這個字段,就不需要指定搜尋字段名稱.
?
1.2. 查詢規則:
如欲查詢特定字段(非預設字段),請在查詢詞前加上該字段名稱加 “:” (不包含”號) 符號,
例如: address:北京市海淀區上地軟件園 tel:88xxxxx1
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:88xxxxx1&version=2.2&start=10&rows= 20&indent=on
(indent代表輸出的xml要不要縮行.預設為開啟 on)
?
1.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
3、查詢參數
常用
q – 查詢字符串,必須的。
fl – 指定返回那些字段內容,用逗號或空格分隔多個。
start – 返回第一條記錄在完整找到結果中的偏移位置,0開始,一般分頁用。
rows – 指定返回結果最多有多少條記錄,配合start來實現分頁。
sort – 排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc|asc>]… 。示例:(inStock desc, price asc)表示先 “inStock” 降序, 再 “price” 升序,默認是相關性降序。
wt – (writer type)指定輸出格式,可以有 xml, json, php, phps, 后面 solr 1.3增加的,要用通知我們,因為默認沒有打開。
fq – (filter query)過慮查詢,作用:在q查詢符合結果中同時是fq查詢符合的,例如:q=mm&fq=date_time:[20081001 TO 20091031],找關鍵字mm,并且date_time是20081001到20091031之間的。官方文檔:http://wiki.apache.org/solr/CommonQueryParameters
不常用
q.op – 覆蓋schema.xml的defaultOperator(有空格時用”AND”還是用”OR”操作邏輯),一般默認指定
df – 默認的查詢字段,一般默認指定
qt – (query type)指定那個類型來處理查詢請求,一般不用指定,默認是standard。
其它
indent – 返回的結果是否縮進,默認關閉,用 indent=true|on 開啟,一般調試json,php,phps,ruby輸出才有必要用這個參數。
version – 查詢語法的版本,建議不使用它,由服務器指定默認值。
[Solr的檢索運算符]
“:” 指定字段查指定值,如返回所有值*:*2
“?”表示單個任意字符的通配
“*” 表示多個任意字符的通配(不能在檢索的項開始使用*或者?符號)2
“~”表示模糊檢索,如檢索拼寫類似于”roam”的項這樣寫:roam~將找到形如foam和roams的單詞;roam~0.8,檢索返回相似度在0.8以上的記錄。
鄰近檢索,如檢索相隔10個單詞的”apache”和”jakarta”,”jakarta apache”~10
“^”控制相關度檢索,如檢索jakarta apache,同時希望去讓”jakarta”的相關度更加好,那么在其后加上”^”符號和增量值,即jakarta^4 apache
布爾操作符AND、||2
布爾操作符OR、2&&
布爾操作符NOT、!、-2(排除操作符不能單獨與項使用構成查詢)
“+” 存在操作符,要求符號”+”后的項必須在文檔相應的域中存在2
( ) 用于構成子查詢2
[] 包含范圍檢索,如檢索某時間段記錄,包含頭尾,date:[200707 TO 200710]
{}不包含范圍檢索,如檢索某時間段記錄,不包含頭尾
date:{200707 TO 200710}
timestamp:[* TO NOW]
createdate:[1976-03-06T23:59:59.999Z TO *]
createdate:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]
pubdate:[NOW-1YEAR/DAY TO NOW/DAY+1DAY]
createdate:[1976-03-06T23:59:59.999Z TO 1976-03-06T23:59:59.999Z+1YEAR]
createdate:[1976-03-06T23:59:59.999Z/YEAR TO 1976-03-06T23:59:59.999Z]
” 轉義操作符,特殊字符包括+ – & | ! ( ) { } [ ] ^ ” ~ * ? : “
轉載于:https://www.cnblogs.com/coderdxj/p/9598012.html
總結
以上是生活随笔為你收集整理的solr的一些查询语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【pyqt5学习】——graphicVi
- 下一篇: UDS协议的项目应用