solr查詢語法

2021-09-23 19:21:32 字數 2317 閱讀 1621

配置好solr後,可以通過web管理介面進行管理和查詢。web介面基本列出了大多數查詢引數,可以通過這個學習lucene的查詢語法。

solr的查詢解析是通過queryparser來配置的(solrconfig.xml),一般我們用預設的即可。其各引數含義與用法簡單解釋如下:

q:查詢輸入,必須。可以使用運算子

fq:過濾查詢。可以使用運算子

sort:排序的字段,格式為field score,多個字段之間用逗號隔開,比如sum(x_f, y_f) desc, price asc,預設是score desc

start:從哪一行開始

rows:獲取多少行

fl:查詢要輸出的字段,字段之間用逗號隔開,比如title,price,seller,星號代表所有,預設就是星號。

df:定義查詢時預設的查詢field。

wt:返回的資料型別,可以是json、xml、python、ruby、php、csv等格式。

indent:true/false,返回的xml格式是否需要縮排(格式化展示),預設為false

debugquery:除錯查詢,會輸出查詢過程的一些引數。

高亮相關:

高亮是通過searchcomponent來配置的,在solrconfig.xml中配置名為highlight的searchcomponent即可,預設的實現是solr.highlightcomponent。

hl:true/false,是否高亮顯示

hl.fl:高亮顯示的字段

hl.example.pre:高亮顯示的字首

hl.exapmle.post:高亮顯示的字尾

hl.requirefieldmatch:是否只在查詢指定的field(只有當hl.usephrasehighlighter為true時才生效)高亮顯示,預設是在所有field都高亮

hl.usephrasehighlighter:true/false,使用spanscorer高亮查詢短語

hl.highlightmultiterm:true/false,如果spanscorer被啟用,這個引數針對字首/模糊/範圍/萬用字元等開啟高亮顯示

facet:true/false

facet是solr的高階搜尋功能之一,可以給使用者提供更友好的搜尋體驗(類似於麵包屑導航的功能)。在搜尋關鍵字的同時,能夠按照 facet指定的字段進行分組統計。比如商品的分類、商品的規格等。facet的字段必須被索引,無須分詞(分詞意義不大),也無須儲存。詳細可參考 《solr的facet查詢》

facet的查詢結果返回欄位為facet_counts,與responseheader、response同級。

facet.query:類似於filter的語法,對任意字段進行篩選

facet.field:需要進行facet的字段

facet.prefix:對facet欄位的字首過濾

facet.sort:true/false,對facet以哪種順序返回,true為按照count值從大到小排序,預設為true

spellcheck:拼寫檢查

spellcheck是通過component的方式實現的,你可以在solrconfig.xml檔案中配置searchcomponent來完成拼寫 檢查的功能,預設的實現是solr.spellcheckcomponent,具體的配置引數和實現原理可以看這裡 《spellcheckcomponent》

spatial:空間搜尋

spatial是專門針對空間資料進行搜尋的,空間位置的索引和儲存fieldtype是latlontype或者 spatialrecursiveprefixtreefieldtype,通過使用空間搜尋,你可以對點、麵等資料建立索引,以圓形、方形或其他形狀進 行範圍搜尋,以及對搜尋結果按距離排序等等,具體的配置引數和實現原理可以看這裡《spatialsearch》

檢索運算子:

冒號":": field:value結構查詢,表示欄位field值為value的查詢。

萬用字元:?(任意乙個字元) *(任意字元)

布林操作:and(並且,同&&) or(或者,同||) +(包含) -(不包含) not(同!),注意and、or、not均為大寫

範圍:[a to b](從a到b之間,包含a和b,注意to大寫),(從a到b之間,不包含a和b,注意to大寫)

子運算:()括號跟數學表示式上的差不多,比如:(瓜 or 傻) and 男人

模糊檢索:~表示模糊檢索,比如:roam~將找到形如foam和roams的單詞;roam~0.8,檢索返回相似度在0.8以上的記錄

控制相關度:^表示相關度,如檢索jakarta apache,同時希望讓」jakarta」的相關度更加好,那麼在其後加上」^」符號和增量值,即jakarta^4 apache

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查詢語法擴充套件了lucene的語法,其目的也就是檢索索引。solr的查詢用到了引數q,標準的查詢語法就想下面這樣 可以使用debug query來分析查詢過程 debug 一般來說,response會包含匹配程度最好的文件,但是上面例子中,沒有文件滿足這一查詢。在debug資訊...