Solr08-Solr管理頁面的查詢操作
目錄
1 Solr管理頁面的查詢入口
選中需要查詢的SolrCore, 然後在選單欄選擇[Query]:
2 Solr查詢輸入框簡介
select: 查詢請求處理器.
q: query的簡寫, 指定查詢表示式.
*:*
, 表示查詢所有, 如:product_name:花兒朵朵
, 表示product_name域中包含花兒朵朵.fq: filter query的簡寫, 是一個數組, 可指定多個. 在q的查詢結果中, 執行過濾 -- 前提: 需要指定q查詢
product_price:[* TO 20]
, 表示查詢商品價格在20塊錢以內, 包含20;product_price:[* TO 20}
sort: 指定搜尋結果的排序.
product_price desc
-- 表示按照商品價格降序product_price asc
-- 表示按照商品價格升序product_price desc, product_catalog asc
-- 表示按商品價格降序, 按商品分類id升序(多個域排序, 以半形逗號分割)start,rows: 指定搜尋結果分頁 start: 結果記錄起始數 rows: 每一頁顯示記錄數
fl: field list的簡寫, 指定搜尋結果顯示的域列表. id, product_name, product_price, product_catalog_name -- 表示顯示商品Id, 商品名稱, 商品價格, 商品類別名稱
df: default field的簡寫, 指定預設搜尋域 -- 只能指定一個.
wt: writer type的簡寫, 指定搜尋結果資料的響應格式. (csv格式: 類似於記事本的格式.) indent: 縮排, 格式良好地顯示查詢結果; debugQuery: 列印查詢的除錯資訊.
dismax、edismax: 查詢解析器, 一般不選擇. /select等使用的是標準查詢解析器.
hl: high light的簡寫, 設定高亮顯示. 高亮顯示的field, 需要stored=true.
hl.fl: 高亮顯示的域的名稱; hl.simple.pre: 高亮顯示的HTML標籤字首; hl.simple.post: 高亮顯示的HTML標籤字尾; hl.requireFieldMatch: 預設為false, 若選中(為true), 則需要hl.fl指定欄位, 查詢結果才會高亮; hl.usePhraseHighlighter: 如果查詢語句中含有引號括起來的短語, 那麼只有完全匹配短語的內容才會高亮; hl.highlightMultiTerm: 預設為false, 若選中且hl.usePhraseHighlighter為true時, 如果使用萬用字元和模糊搜尋, 那麼會確保與萬用字元匹配的term才會高亮.
facet(擴充套件): 分組統計(分片統計), 如電商中的組合多條件搜尋:
facet查詢設定介面: facet.query: 指定組內初始化統計條件 facet.field: 指定分組統計的域的名稱(通常使用分類域) facet.prefix: 指定組內過濾查詢條件的字首
spatial: 空間查詢(經緯度)
spellcheck: 拼寫檢查, 即輸入時的智慧匹配
3 Solr管理頁面的查詢方案
說明: 使用SolrJ實現頁面的查詢效果, 要求引數和結果與頁面一致.
頁面搜尋條件:
頁面搜尋結果: 文件結果以及分組統計結果:
高亮顯示結果:
注意:
由上圖可知, Solr在高亮查詢時, 高亮結果集與正常結果集是分開返回的, 為了與正常結果集中的其他內容相匹配, 這裡需要設定主鍵
進行結果的關聯. 另外, 對於multiValued=true的欄位, 不要進行高亮設定 -- 它只會返回匹配高亮的值, 不能確定是何條資料.
也可通過HTTP請求的方式進行高亮設定, HTTP請求示例:
http://localhost:7070/solr/select?q=product_name:花兒朵朵&hl=true&hl.fl=product_name&hl.simple.pre=<font color='red'>&hl.simple.post=</font>
也可通過配置solrconfig.xml檔案, 是預設搜尋方案具有高亮功能: 在
下配置.