摘要:預設的solr查詢語法擴充套件了lucene的語法,其目的也就是檢索索引。
solr的查詢用到了引數q
,標準的查詢語法就想下面這樣:
可以使用debug=query
來分析查詢過程:
"debug":}一般來說,response會包含匹配程度最好的文件,但是上面例子中,沒有文件滿足這一查詢。
在debug資訊中,可以看到是如何解析查詢語句的:查詢的主體是hello
,查詢的字段是text
。
一般來說,查詢會指定在哪個字段查詢,語法:
title:china
表示的意思是查詢title欄位包含china
資訊。
短語查詢是需要滿足多個查詢片語。
text:"air china"
這樣的話,查詢到的結果必須包含air china
這樣的片語,如果標題中只有air liquide china
是不會匹配到的。
臨近查詢有點像短語查詢的擴充,允許干擾項出現在所查詢的片語之間。
text:"bank of china"~2
如果這樣的話,不僅可以匹配到bank of china
這樣的片語,還會匹配central bank system of china
、bank institution of china
這樣的短語。
布林查詢可以包含多條查詢語句,可以使查詢條件是可選的、必須的、禁止的。
solr search
預設的查詢操作符是or
,也就是說是可選的。那麼text中包含solr或包含search都滿足查詢語句。
可以使用一些操作符來實現布林查詢,例如+
、and
表示必須的,-
、not
表示禁止的,or
表示可選的。
+solr +search example -test
可以認為返回的結果必須包含solr
和search
,不能出現test
,有沒有exapmle
無所謂。
下面這種寫法表達的是相同的意思:
solr and search or exapmle not test
提公升查詢需要用到操作符^
,該查詢不會影響到查詢結果的數量,只會改變相關性,影響結果的排序。
text:solr^10
text:rocks
text:(solr^10 rocks)
(instock:true
andtext:solr)^123.45
text:hi
範圍查詢需要選定一定範圍的文件,查詢可以作用於數字型別、日期型別、字串型別。
age:[18
to30] // 匹配 age 在18-30 之間(包含 18 和 30 )
age:[18
to30} // 匹配 age 在18-30 之間(包含 18 不含 30 )
age:[65
to *] // 匹配 age 大於 65
age:[* to *] // 匹配所有含有age欄位的文件
常數得分查詢有點像布林查詢,只是該查詢需要左右的文件有相同的得分,查詢需要用到操作符^=
。
+color:blue^=1 text:shoes
過濾查詢需要用到fiter chche
,返回的結果都來自快取,但是由於score 不會快取,所以滿足查詢條件的文件得分都是0,不過該查詢請求響應會很快(來自快取)。
description:hdtv or filter(+promotion:tv +promotion_date:[now/day-7days to now/day+1day])
這裡用到了filter()
語法。
可以使用像c語言一樣的注釋語法給solr的查詢語法新增注釋。語法如下:
/* comments */
乙個例子:
description:hdtv /* todo: +promotion:tv +promotion_date:[now/day-7days to now/day+1day] */
solr查詢語法
首先假設我的資料裡fields有 name,subbranch,tel,address 預設的搜尋是name這個字段,如果要搜尋的資料剛好就是 name 這個字段,就不需要指定搜尋欄位名稱.2.查詢規則 如欲查詢特定字段 非預設字段 請在查詢詞前加上該欄位名稱加 不包含 號 符號,例如 addres...
solr查詢語法
區間範圍查詢 組合 區間條件 if minprice.intvalue 0 maxprice 0 1.首先假設我的資料裡fields有 name,subbranch,tel,address 預設的搜尋是name這個字段,如果要搜尋的資料剛好就是 name 這個字段,就不需要指定搜尋欄位名稱.2.查詢...
solr查詢語法
配置好solr後,可以通過web管理介面進行管理和查詢。web介面基本列出了大多數查詢引數,可以通過這個學習lucene的查詢語法。solr的查詢解析是通過queryparser來配置的 solrconfig.xml 一般我們用預設的即可。其各引數含義與用法簡單解釋如下 q 查詢輸入,必須。可以使用...