solr基本查詢和高階查詢
查詢引數
常用:
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。fq
- (filter query)過慮查詢,作用:在q查詢符合結果中同時是fq查詢符合的,例如:q=mm&fq=date_time:[20081001 TO 20091031]
,找關鍵字mm,並且date_time是20081001到20091031之間的- 注意:solr查詢時間為UTC 格式(2013-04-25T22:22:12.000Z)
- 如:
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]
不常用:
defType
:q.op
- 覆蓋schema.xml的defaultOperator(有空格時用"AND"還是用"OR"操作邏輯),一般預設指定df
- 預設的查詢欄位,一般預設指定qt
- (query type)指定那個型別來處理查詢請求,一般不用指定,預設是standard。
其它:
indent
- 返回的結果是否縮排,預設關閉,用indent=true|on
version
- 查詢語法的版本,建議不使用它,由伺服器指定預設值。
檢索運算子
:
指定欄位查指定值,如返回所有值:?
表示單個任意字元的通配*
表示多個任意字元的通配(不能在檢索的項開始使用*或者?符號)~
表示模糊檢索,如檢索拼寫類似於"roam"的項這樣寫:roam~將找到形如foam和roams的單詞;roam~0.8,檢索返回相似度在0.8以上的記錄。 鄰近檢索,如檢索相隔10個單詞的"apache"和"jakarta","jakarta apache"~10^
控制相關度檢索,如檢索jakarta apache,同時希望去讓"jakarta"的相關度更加好,那麼在其後加上""符號和增量值,即jakarta4 apache- 布林操作符
AND、||
- 布林操作符
OR、&&
- 布林操作符
NOT、!、-
(排除操作符不能單獨與項使用構成查詢) +
存在操作符,要求符號"+"後的項必須在文件相應的域中存在()
用於構成子查詢[]
包含範圍檢索,如檢索某時間段記錄,包含頭尾,date:[200707 TO 200710]{}
不包含範圍檢索,如檢索某時間段記錄,不包含頭尾,date:{200707 TO 200710}"
轉義操作符,特殊字元包括+ - && || ! ( ) { } [ ] ^ " ~ * ? : "
示例
- 1. 查詢所有
http://localhost:8080/solr/primary/select?q=*:*
- 2. 限定返回欄位
http://localhost:8080/solr/primary/select?q=*:*&fl=productId
表示:查詢所有記錄,只返回productId欄位
- 3. 分頁
http://localhost:8080/solr/primary/select?q=*:*&fl=productId&rows=6&start=0
表示:查詢前六條記錄,只返回productId欄位
- 4. 增加限定條件
http://localhost:8080/solr/primary/select?q=*:*&fl=productId&rows=6&start=0&fq=category:2002&fq=namespace:d&fl=productId+category&fq=en_US_city_i:1101
表示:查詢category=2002、en_US_city_i=110
以及namespace=d的前六條記錄,只返回productId和category欄位
- 5. 新增排序
http://localhost:8080/solr/primary/select?q=*:*&fl=productId&rows=6&start=0&fq=category:2002&fq=namespace:d&sort=category_2002_sort_i+asc
表示:查詢category=2002以及namespace=d並按category_2002_sort_i
升序排序的前六條記錄,只返回productId欄位
- 6. facet查詢
現實分組統計結果
http://localhost:8080/solr/primary/select?q=*:*&fl=productId&fq=category:2002&facet=true&facet.field=en_US_county_i&facet.field=en_US_hotelType_s&facet.field=price_p&facet.field=heatRange_i
http://localhost:8080/solr/primary/select?q=*:*&fl=productId&fq=category:2002&facet=true&facet.field=en_US_county_i&facet.field=en_US_hotelType_s&facet.field=price_p&facet.field=heatRange_i&facet.query=price_p:[300.00000+TO+*]
facet
基本引數:
具體例項和用法參考:
group
查詢的url:
http://localhost:8080/solr/my_solr/select?q=province:湖&wt=xml&indent=true&rows=100&group=true&group.field=province&group.field=province&group.limit=20&group.ngroups=true
group=true:設定開啟分組查詢
group.field=province:設定分組欄位
group.limit=20:設定分組後展示分組下資料量
group.ngroups=true:設定為true表示會返回分組的分組
下面是查詢結果:
- <response>
- <lstname="responseHeader">
- <intname="status">0</int>
- <intname="QTime">81</int>
- <lstname="params">
- <strname="q">province:湖</str>
- <strname="indent">true</str>
- <strname="group.limit">20</str>
- <strname="rows">100</str>
- <strname="group.ngroups">true</str>
- <strname="wt">xml</str>
- <arrname="group.field">
- <str>province</str>
- <str>province</str>
- </arr>
- <strname="group">true</str>
- </lst>
- </lst>
- <lstname="grouped">
- <lstname="province">
- <intname="matches">13</int>
- <intname="ngroups">3</int>
- <arrname="groups">
- <lst>
- <strname="groupValue">1</str>
- <resultname="doclist"numFound="1"start="0">
- <doc>
- <strname="id">10</str>
- <strname="province">湖1</str>
- <strname="suggestText">湖1</str>
- <longname="_version_">1535191400888401920</long>
- </doc>
- </result>
- </lst>
- <lst>
- <strname="groupValue">2</str>
-
相關推薦
solr基本查詢和高階查詢
查詢引數常用:q - 查詢字串,必須的。fl - 指定返回那些欄位內容,用逗號或空格分隔多個。start - 返回第一條記錄在完整找到結果中的偏移位置,0開始,一般分頁用。rows - 指定返回結果最多有多少條記錄,配合start來實現分頁。sort - 排序,格式:sort
Orale基本查詢、高階查詢個別例子
emp表格 DEPT表格 ---------------------------------------------------- --DISTINCT 用於去除結果集 --中指定欄位的重複值 --DISTINCT 只能在select關鍵字之後 --DIS
Hbase常用面試題和高階查詢
Hbase常用面試題和高階查詢 一、HBase的工作方式 hbase表中的資料按照行鍵的字典順序排序,hbase表中的資料按照行的的方向切分為多個region,最開始只有一個region 隨著資料量的增加 產生分裂 這個過程不停的進行 一個表可能對應一個或多個region。regio
MySQL查詢過程和高階查詢
通過中篇的介紹,你會了解到: MySQL查詢過程 高階查詢相關概念 explain命令詳細介紹 索引優化建議 MySQL查詢過程 想要更好的優化查詢,首先要了解其整體查詢過程,從客戶端傳送查詢請求,到接收到查詢結果,MySQL伺
mongoDB的高階查詢和高階修改
db.c1.remove(); 刪除c1集合中所有的資料 db.c1.remove("條件"); 刪除c1集合中符合條件的所有的資料 修改資料把user3修改成user30: 若已經插入db.c1.insert({name:"user3",age:30}); { "_id" : ObjectId(
算法系列(二)查詢演算法--基本查詢和二分查詢
在 算法系列(一)基本概念 一文中,簡單介紹了演算法基本概念,演算法複雜度評估,常用演算法證明方式。這篇文章介紹一下查詢演算法,主要是二分查詢演算法。 從n個元素中A0,A1....An-1中,找到要
JPA2.0 criteriaBuilder 模糊查詢和高階選擇搜尋查詢
需求 JPA2.0 criteriaBuilder 高階處理模糊查詢和高階選擇搜尋查詢 解決: 1.如果使用SQL拼接使用的是連續的 if(){} if(){}… 來拼接字串 2.jp
springMVC、myBatis的物理分頁和高階查詢
最新專案用到springMVC和mybatis,分頁其實用一個RowBounds可以實現,但是高階查詢不好封裝, 經過反覆測試,總算搞出來了,感覺封裝的不是很好,有待優化和提高! 原理:利用mybatis自定義外掛功能,自定義一個攔截器,攔截需要分頁的sql
連接查詢和分組查詢
des titles 時也 每次 多表連接 分類 inner name 通過 一.使用group by 進行分組查詢 語法: Select 列名 From 表名 Group by 列名 1.查詢男女學生的人數格式多少 分析: 首先按照性別進行分組:group by SSe
鏈接查詢和分組查詢
多個 查詢信息 sel bsp sql語句 聚合函數 列名 del out 分組查詢 select 查詢信息 from 表名where 條件group by 按照列分組(可多個 ,隔開)order by 排序方式(查詢信息如果列名和聚合函數同時出現,要麽在聚合函數中出現,
python3開發進階-Django框架中的ORM的常用操作的補充(F查詢和Q查詢,事務)
這樣的 env atomic 實例 In git 必須 TE setup 閱讀目錄 F查詢和Q查詢 事務 一、F查詢和Q查詢 1、F查詢 查詢前的準備 class Product(models.Model): name = mod
Django基礎—— 14.聚合查詢和分組查詢
分享圖片 技術 基礎 http bubuko png src 查詢 djang Django基礎—— 14.聚合查詢和分組查詢
第64篇 自關聯 分組查詢和聚合查詢 Q查詢 F查詢 ORM進階
1. 刪除‘alex’所帶班級的 的全部學生 2. 自關聯 3. 多對多的自關聯 symmetric &nbs
F查詢和Q查詢,摘自李文周老師
upd 函數 組合 收藏 在一起 price net contains lis F查詢和Q查詢 F查詢 在上面所有的例子中,我們構造的過濾器都只是將字段值與某個常量做比較。如果我們要對兩個字段的值做比較,那該怎麽做呢? Django 提供 F() 來做這樣的比較。F() 的
Django_外來鍵查詢和反查詢
一、ForeignKey @property裝飾器的作用是返回一個屬性特性,在資料庫中也有一些小技巧可以拿來用,比如今天要寫的外來鍵查詢和反向查詢的內容。 1 from django.db import models 2 3 class Person(models.Model): 4
orm聚合查詢、分組查詢、F查詢和Q查詢
all where 最大 ota lte rom gate first 紅樓夢 1.聚合查詢(Avg,Count,Max,Min,Sum) Avg為求平均數,Count為求個數,Max為求最大值,Min為求最小值,Sum為求和 以Avg舉例 from django.db.m
資料查詢之連線查詢、子查詢和聯合查詢
一、連線查詢 基本含義:將兩個以上的表(資料來源),連線起來成為一個數據源。 基本形式:from 表1 [連線方式] join 表2 [on 連線條件] join 為連線查詢關鍵字--必須 [連線方式] [on 連線條件]為可選性 交叉連線:&nb
Django-ORM的F查詢和Q查詢
當一般的查詢語句已經無法滿足我們的需求時,Django為我們提供了F和Q複雜查詢語句。假設場景一:老闆說對資料庫中所有的商品,在原價格的基礎上漲價10元,你該怎麼做?場景二:我要查詢一個名字叫xxx,年齡是18歲,或者名字是yyy,年齡是是19歲的人,你該怎麼寫你的ORM語句? 一、F查詢
Es學習第九課, 聚合查詢和複合查詢
ES除了實現前幾課的基本查詢,也可以實現類似關係型資料庫的聚合查詢,如平均值sum、最小值min、最大值max等等 我們就用上一課的資料作為參考來舉例 聚合查詢 sum聚合 sum是一個求累加值的聚合,其作用與關係型資料庫中相同。 GET /lib4/items/_search { "si
mysql8學習手冊第三部分查詢和子查詢
Selecting data into a file and table To save the output into a file, you need the FILE privilege. FILE is a global privilege, which means you