分面
分面是根據索引詞將搜尋結果安排成類別。
搜尋者會看到索引詞,以及每個詞彙找到多少個相符文件的數字計數。分面可讓使用者輕鬆探索搜尋結果,並縮小範圍以精確找出他們正在尋找的結果。
另請參閱 JSON 分面 API,以取得另一種方法。
一般分面參數
有兩個用於控制分面的一般參數。
facet
-
必要
預設值:
false
如果設定為
true
,此參數會啟用查詢回應中的分面計數。如果設定為false
、空白或遺失值,此參數會停用分面。除非此參數設定為true
,否則下列列出的其他參數都不會產生任何效果。 facet.query
-
選用
預設值:無
在 Lucene 預設語法中指定任意查詢以產生分面計數。
依預設,Solr 的分面功能會自動判斷欄位的唯一詞彙,並傳回每個詞彙的計數。使用
facet.query
,您可以覆寫此預設行為,並精確選取您想要計數的詞彙或表達式。在典型的分面實作中,您將指定許多facet.query
參數。此參數對於數值範圍型分面或字首型分面特別有用。您可以多次設定
facet.query
參數,以指出應使用多個查詢作為個別的分面條件約束。若要在預設語法以外的語法中使用分面查詢,請在分面查詢前面加上查詢表示法的名稱。例如,若要使用假設的
myfunc
查詢剖析器,您可以像這樣設定facet.query
參數facet.query={!myfunc}name~fred
欄位值分面參數
可以使用數個參數,根據欄位中索引的詞彙觸發分面。
當使用這些參數時,請務必記住,「term」(詞彙)在 Lucene 中是一個非常特定的概念:它指的是在任何分析發生後被索引的字面欄位/值配對。對於包含詞幹提取、小寫轉換或斷詞的文字欄位,產生的詞彙可能與您預期的不同。
如果您希望 Solr 對完整的字面字串執行分析(用於搜尋)和分面,請在您的 Schema 中使用 copyField
指令來建立該欄位的兩個版本:一個 Text 和一個 String。Text 欄位如果用於搜尋但不用於分面,則應具有 indexed="true" docValues="false"
,而 String 欄位如果用於分面但不用於搜尋,則應具有 indexed="false" docValues="true"
。(有關 copyField
指令的更多資訊,請參閱 複製欄位。)
除非另有說明,否則以下所有參數都可以使用 f.<fieldname>.facet.<parameter>
的語法,在每個欄位的基礎上指定。
facet.field
-
選用
預設值:無
識別應視為分面的欄位。它會迭代欄位中的每個 Term,並使用該 Term 作為約束產生分面計數。可以在查詢中多次指定此參數,以選擇多個分面欄位。
如果您沒有將此參數設定為 schema 中至少一個欄位,則本節中描述的所有其他參數都不會產生任何效果。 facet.prefix
-
選用
預設值:無
將分面的詞彙限制為以給定字串前綴開頭的詞彙。這不會以任何方式限制查詢,只會限制回應查詢時返回的分面。
facet.contains
-
選用
預設值:無
將分面的詞彙限制為包含給定子字串的詞彙。這不會以任何方式限制查詢,只會限制回應查詢時返回的分面。
facet.contains.ignoreCase
-
選用
預設值:無
如果設定為
true
,則在將facet.contains
子字串與候選分面詞彙匹配時,會忽略大小寫。 facet.matches
-
選用
預設值:無
僅返回與此正則表達式匹配的詞彙的分面桶。
facet.sort
-
選用
預設值:無
分面欄位詞彙的排序。有兩個選項
count
-
先返回按計數最高排序的詞彙。
index
-
返回按詞彙順序排序的詞彙。對於 ASCII 範圍內的詞彙,這將按字母順序排序。
如果
facet.limit
大於 0,則預設值為count
,否則,預設值為index
。請注意,當使用特定詞彙限制分面時,預設邏輯會變更。
facet.limit
-
選用
預設值:
100
返回的分面計數數量。負值表示 Solr 將返回所有計數。
facet.offset
-
選用
預設值:
0
返回的分面清單的偏移量,以允許分頁。
facet.mincount
-
選用
預設值:
0
分面欄位要包含在回應中所需的最小計數。如果欄位的計數低於最小值,則不會返回該欄位的分面。
facet.missing
-
選用
預設值:
false
如果設定為
true
,此參數表示,除了分面欄位基於 Term 的約束之外,還應計算並在回應中返回符合查詢但該欄位沒有分面值的所有結果的計數。 facet.method
-
選用
預設值:
fc
選擇分面欄位時要使用的演算法或方法類型。
可以使用以下方法。
enum
-
列舉欄位中的所有詞彙,計算符合該詞彙的文件與符合查詢的文件之集合的交集。
建議將此方法用於只有少數不同值的多值欄位。每個文件的平均值數量並不重要。
例如,在具有美國州(例如
Alabama, Alaska, … Wyoming
)的欄位上分面,會導致 50 個快取的篩選器被重複使用。filterCache
應該夠大,以容納所有快取的篩選器。 fc
-
透過迭代符合查詢的文件並對每個文件中出現的詞彙進行求和,來計算分面計數。
如果欄位是多值的或已分詞(根據
FieldType.isTokened()
),則目前使用UnInvertedField
快取來實作。會在快取中查詢每個文件,以查看其中包含哪些詞彙/值,並為每個值增加一個計數。此方法非常適合欄位的索引值數量很高,但每個文件的值數量很低的情況。對於多值欄位,會使用一種混合方法,將來自
filterCache
的詞彙篩選器用於符合多個文件的詞彙。字母fc
代表欄位快取。 fcs
-
用於單值字串欄位的每個區段欄位分面。使用
facet.method=fcs
啟用,並使用threads
本機參數控制使用的執行緒數量。此參數允許在索引快速變更的情況下更快地進行分面。
預設值為
fc
(除非欄位使用BoolField
欄位類型,且要求facet.exists=true
),因為當欄位在索引中有許多唯一詞彙時,它往往會使用較少的記憶體且速度更快。 facet.enum.cache.minDf
-
選用
預設值:
0
指示在判斷該詞彙的約束計數時,應使用 filterCache 的最小文件頻率(符合詞彙的文件數量)。這僅用於
facet.method=enum
分面方法。大於零的值會減少 filterCache 的記憶體使用量,但會增加處理查詢所需的時間。如果您要在具有大量詞彙的欄位上分面,並且想要減少記憶體使用量,請嘗試將此參數設定為
25
到50
之間的值,並執行一些測試。然後,根據需要最佳化參數設定。預設值為
0
,這會導致 filterCache 用於欄位中的所有詞彙。 facet.exists
-
選用
預設值:無
若要將分面計數限制為 1,請指定
facet.exists=true
。此參數可以與facet.method=enum
一起使用,或在省略時使用。它只能用於非 Trie 欄位(例如字串)。它可以加速大型索引和/或高基數分面值的分面計數。 facet.excludeTerms
-
選用
預設值:無
從分面計數中移除詞彙,但將它們保留在索引中。
facet.overrequest.count
和facet.overrequest.ratio
-
選用
預設值:請參閱說明
在某些情況下,透過從每個個別的 shard 「過度要求」所需的約束數量(即
facet.limit
),可以提高在分散式 Solr 查詢中選擇分面的「最上方」約束的準確性。在這些情況下,預設會要求每個 shard 提供最上方的10 + (1.5 * facet.limit)
個約束。根據您的文件在 shard 間的分割方式以及您使用的
facet.limit
值,您可能會發現增加或減少 Solr 執行過度要求是有利的。這可以透過設定facet.overrequest.count
(預設為10
)和facet.overrequest.ratio
(預設為1.5
)參數來實現。 facet.threads
-
選用
預設值:0
用於載入分面中使用的基礎欄位的最大並行執行緒數量。
省略此參數或將執行緒計數指定為
0
將不會產生任何執行緒,並且只會使用主要請求執行緒。指定負數執行緒將建立最多Integer.MAX_VALUE
個執行緒。
範圍分面
您可以在任何日期欄位或任何支援範圍查詢的數字欄位上使用範圍分面。這對於將一系列範圍查詢(如按查詢分面)縫合在一起以用於價格之類的事物特別有用。
facet.range
-
必要
預設值:無
Solr 應為其建立範圍分面的欄位。例如
facet.range=price&facet.range=age
facet.range=lastModified_dt
facet.range.start
-
必要
預設值:無
範圍的下限。您可以使用
f.<fieldname>.facet.range.start
的語法,在每個欄位的基礎上指定此參數。例如f.price.facet.range.start=0.0&f.age.facet.range.start=10
f.lastModified_dt.facet.range.start=NOW/DAY-30DAYS
facet.range.end
-
必要
預設值:無
範圍的上限。您可以使用
f.<fieldname>.facet.range.end
的語法,在每個欄位的基礎上指定此參數。例如f.price.facet.range.end=1000.0&f.age.facet.range.start=99
f.lastModified_dt.facet.range.end=NOW/DAY+30DAYS
facet.range.gap
-
必要
預設值:無
每個範圍的跨度,表示為要新增至下限的值。對於日期欄位,這應使用
DateMathParser
語法表示(例如,facet.range.gap=%2B1DAY … '+1DAY'
)。您可以使用
f.<fieldname>.facet.range.gap
的語法,在每個欄位的基礎上指定此參數。例如f.price.facet.range.gap=100&f.age.facet.range.gap=10
f.lastModified_dt.facet.range.gap=+1DAY
facet.range.hardend
-
選用
預設值:
false
如何處理
facet.range.gap
無法在facet.range.start
和facet.range.end
之間均勻分割的情況。如果為
true
,則最後一個範圍約束會將facet.range.end
值作為上限。如果為false
,則最後一個範圍將具有大於facet.range.end
的最小可能上限,因此範圍是指定範圍間隙的確切寬度。可以使用語法
f.<fieldname>.facet.range.hardend
在每個欄位的基礎上指定此參數。 facet.range.include
-
選用
預設值:請參閱說明
預設情況下,用於計算
facet.range.start
和facet.range.end
之間範圍分面的範圍會包含下限,但不包含上限。使用facet.range.other
參數定義的「之前」範圍不包含,而「之後」範圍則包含。此預設值等同於以下的「lower」,不會導致邊界處重複計數。您可以使用facet.range.include
參數,透過以下選項修改此行為-
lower
:所有基於間隙的範圍都包含其下限。 -
upper
:所有基於間隙的範圍都包含其上限。 -
edge
:第一個和最後一個間隙範圍包含其邊界(第一個的下限,最後一個的上限),即使未指定對應的上限/下限選項也是如此。 -
outer
:「之前」和「之後」範圍將包含其邊界,即使第一個或最後一個範圍已包含這些邊界也是如此。 -
all
:包含所有選項:lower
、upper
、edge
和outer
。
您可以使用
f.<fieldname>.facet.range.include
的語法,在每個欄位的基礎上指定此參數,並且可以多次指定它以表示多個選項。 -
為了確保避免重複計數,請勿同時選擇 lower 和 upper ,請勿選擇 outer ,並且請勿選擇 all 。 |
facet.range.other
-
選用
預設值:無
除了
facet.range.start
和facet.range.end
之間每個範圍約束的計數之外,還會計算這些選項的計數-
before
:所有欄位值低於第一個範圍下限的記錄。 -
after
:所有欄位值大於最後一個範圍上限的記錄。 -
between
:所有欄位值介於所有範圍的開始和結束邊界之間的記錄。 -
none
:不計算任何計數。 -
all
:計算 before、between 和 after 的計數。
此參數可以針對每個欄位指定,語法為
f.<fieldname>.facet.range.other
。除了all
選項外,此參數可以多次指定以表示多個選擇,但none
將會覆蓋所有其他選項。 -
facet.range.method
-
選用
預設值:
filter
選擇用於範圍分面的演算法或方法類型。兩種方法都會產生相同的結果,但效能可能會有所不同。
- filter
-
根據其他 facet.range 參數產生範圍,並針對每個範圍執行一個篩選器,該篩選器稍後會與主要查詢結果集相交,以取得計數。它會使用 filterCache,因此能受益於足夠大的快取來包含所有範圍。
- dv
-
迭代符合主要查詢的文件,並針對每個文件找到該值的正確範圍。此方法會使用 DocValues (如果已針對欄位啟用) 或 fieldCache。
dv
方法不支援 DateRangeField 欄位類型,或在使用 group.facets 時。
日期範圍與時區
日期欄位的範圍分面是一種常見情況,其中 如需更多資訊,請參閱 日期格式化和日期數學 章節中的範例。 |
樞紐 (決策樹) 分面
樞紐分析是一種摘要工具,可讓您自動排序、計數、加總或平均表格中儲存的資料。結果通常會顯示在第二個表格中,顯示摘要資料。樞紐分面可讓您建立多個欄位分面文件的結果摘要表。
另一種看待它的方式是,查詢會產生決策樹,因為 Solr 會告訴您「對於分面 A,限制/計數為 X/N、Y/M 等。如果您要將 A 限制為 X,則 B 的限制計數將為 S/P、T/Q 等。」換句話說,它會預先告訴您,如果您應用目前分面結果的限制,則欄位的「下一個」分面結果集會是什麼。
facet.pivot
-
選用
預設值:無
用於樞紐分析的欄位。多個
facet.pivot
值將會在回應中建立多個 "facet_pivot" 區段。使用逗號分隔每個欄位清單。 facet.pivot.mincount
-
選用
預設值:
1
為了將分面納入結果中,需要比對的最小文件數。
使用「bin/solr start -e techproducts」範例,像這樣的一個查詢 URL 將會傳回以下資料,其中樞紐分面結果位於 "facet_pivot" 區段中
https://127.0.0.1:8983/solr/techproducts/select?q=*:*&facet.pivot=cat,popularity,inStock &facet.pivot=popularity,cat&facet=true&facet.field=cat&facet.limit=5&rows=0&facet.pivot.mincount=2
{ "facet_counts":{ "facet_queries":{}, "facet_fields":{ "cat":[ "electronics",14, "currency",4, "memory",3, "connector",2, "graphics card",2]}, "facet_dates":{}, "facet_ranges":{}, "facet_pivot":{ "cat,popularity,inStock":[{ "field":"cat", "value":"electronics", "count":14, "pivot":[{ "field":"popularity", "value":6, "count":5, "pivot":[{ "field":"inStock", "value":true, "count":5}]}] }]}}}
將統計組件與樞紐組合
除了其他分面類型支援的某些一般本地參數外,stats
本地參數可用於 facet.pivot
,以參照您想要針對每個樞紐限制計算的 stats.field
實例 (依標籤)。
在下面的範例中,針對每個 facet.pivot 結果階層計算兩組不同的 (重疊) 統計資料
stats=true
stats.field={!tag=piv1,piv2 min=true max=true}price
stats.field={!tag=piv2 mean=true}popularity
facet=true
facet.pivot={!stats=piv1}cat,inStock
facet.pivot={!stats=piv2}manu,inStock
結果
{"facet_pivot":{
"cat,inStock":[{
"field":"cat",
"value":"electronics",
"count":12,
"pivot":[{
"field":"inStock",
"value":true,
"count":8,
"stats":{
"stats_fields":{
"price":{
"min":74.98999786376953,
"max":399.0}}}},
{
"field":"inStock",
"value":false,
"count":4,
"stats":{
"stats_fields":{
"price":{
"min":11.5,
"max":649.989990234375}}}}],
"stats":{
"stats_fields":{
"price":{
"min":11.5,
"max":649.989990234375}}}},
{
"field":"cat",
"value":"currency",
"count":4,
"pivot":[{
"field":"inStock",
"value":true,
"count":4,
"stats":{
"stats_fields":{
"price":{
"..."
"manu,inStock":[{
"field":"manu",
"value":"inc",
"count":8,
"pivot":[{
"field":"inStock",
"value":true,
"count":7,
"stats":{
"stats_fields":{
"price":{
"min":74.98999786376953,
"max":2199.0},
"popularity":{
"mean":5.857142857142857}}}},
{
"field":"inStock",
"value":false,
"count":1,
"stats":{
"stats_fields":{
"price":{
"min":479.95001220703125,
"max":479.95001220703125},
"popularity":{
"mean":7.0}}}}],
"..."}]}}}}]}]}}
將分面查詢和分面範圍與樞紐分面組合
query
本地參數可用於 facet.pivot
,以參照應針對每個樞紐限制計算的 facet.query
實例 (依標籤)。同樣地,range
本地參數可用於 facet.pivot
,以參照 facet.range
實例。
在下面的範例中,針對 h 的 facet.pivot
結果階層計算兩個查詢分面
facet=true
facet.query={!tag=q1}manufacturedate_dt:[2006-01-01T00:00:00Z TO NOW]
facet.query={!tag=q1}price:[0 TO 100]
facet.pivot={!query=q1}cat,inStock
{"facet_counts": {
"facet_queries": {
"{!tag=q1}manufacturedate_dt:[2006-01-01T00:00:00Z TO NOW]": 9,
"{!tag=q1}price:[0 TO 100]": 7
},
"facet_fields": {},
"facet_dates": {},
"facet_ranges": {},
"facet_intervals": {},
"facet_heatmaps": {},
"facet_pivot": {
"cat,inStock": [
{
"field": "cat",
"value": "electronics",
"count": 12,
"queries": {
"{!tag=q1}manufacturedate_dt:[2006-01-01T00:00:00Z TO NOW]": 9,
"{!tag=q1}price:[0 TO 100]": 4
},
"pivot": [
{
"field": "inStock",
"value": true,
"count": 8,
"queries": {
"{!tag=q1}manufacturedate_dt:[2006-01-01T00:00:00Z TO NOW]": 6,
"{!tag=q1}price:[0 TO 100]": 2
}
},
"..."]}]}}}
以類似的方式,在下面的範例中,針對每個 facet.pivot
結果階層計算兩個範圍分面
facet=true
facet.range={!tag=r1}manufacturedate_dt
facet.range.start=2006-01-01T00:00:00Z
facet.range.end=NOW/YEAR
facet.range.gap=+1YEAR
facet.pivot={!range=r1}cat,inStock
{"facet_counts":{
"facet_queries":{},
"facet_fields":{},
"facet_dates":{},
"facet_ranges":{
"manufacturedate_dt":{
"counts":[
"2006-01-01T00:00:00Z",9,
"2007-01-01T00:00:00Z",0,
"2008-01-01T00:00:00Z",0,
"2009-01-01T00:00:00Z",0,
"2010-01-01T00:00:00Z",0,
"2011-01-01T00:00:00Z",0,
"2012-01-01T00:00:00Z",0,
"2013-01-01T00:00:00Z",0,
"2014-01-01T00:00:00Z",0],
"gap":"+1YEAR",
"start":"2006-01-01T00:00:00Z",
"end":"2015-01-01T00:00:00Z"}},
"facet_intervals":{},
"facet_heatmaps":{},
"facet_pivot":{
"cat,inStock":[{
"field":"cat",
"value":"electronics",
"count":12,
"ranges":{
"manufacturedate_dt":{
"counts":[
"2006-01-01T00:00:00Z",9,
"2007-01-01T00:00:00Z",0,
"2008-01-01T00:00:00Z",0,
"2009-01-01T00:00:00Z",0,
"2010-01-01T00:00:00Z",0,
"2011-01-01T00:00:00Z",0,
"2012-01-01T00:00:00Z",0,
"2013-01-01T00:00:00Z",0,
"2014-01-01T00:00:00Z",0],
"gap":"+1YEAR",
"start":"2006-01-01T00:00:00Z",
"end":"2015-01-01T00:00:00Z"}},
"pivot":[{
"field":"inStock",
"value":true,
"count":8,
"ranges":{
"manufacturedate_dt":{
"counts":[
"2006-01-01T00:00:00Z",6,
"2007-01-01T00:00:00Z",0,
"2008-01-01T00:00:00Z",0,
"2009-01-01T00:00:00Z",0,
"2010-01-01T00:00:00Z",0,
"2011-01-01T00:00:00Z",0,
"2012-01-01T00:00:00Z",0,
"2013-01-01T00:00:00Z",0,
"2014-01-01T00:00:00Z",0],
"gap":"+1YEAR",
"start":"2006-01-01T00:00:00Z",
"end":"2015-01-01T00:00:00Z"}}},
"..."]}]}}}
間隔分面
另一個支援的分面形式是間隔分面。這聽起來類似於範圍分面,但功能實際上更接近於使用範圍查詢來執行分面查詢。間隔分面可讓您設定變數間隔,並計算指定欄位中具有這些間隔內的值的文件數。
即使可以使用具有範圍查詢的分面查詢來實現相同的功能,但這兩種方法的實作方式截然不同,並且會根據上下文提供不同的效能。
如果您擔心搜尋效能,應該測試這兩個選項。間隔分面在同一個欄位有多個間隔時往往更好,而分面查詢在篩選器快取更有效率的環境 (例如靜態索引) 中往往更好。
如果已針對欄位啟用 DocValues,則此方法會使用它們,否則會使用 fieldCache。
使用這些參數進行間隔分面
facet.interval
-
選用
預設值:無
必須套用間隔分面的欄位。它可以在同一個請求中多次使用,以表示多個欄位。
facet.interval=price&facet.interval=size
facet.interval.set
-
選用
預設值:無
設定欄位的間隔。可以多次指定以表示多個間隔。此參數是全域性的,這表示除非特定欄位有覆寫,否則它將用於所有以
facet.interval
指示的欄位。若要覆寫特定欄位的此參數,您可以使用:f.<fieldname>.facet.interval.set
,例如f.price.facet.interval.set=[0,10]&f.price.facet.interval.set=(10,100]
間隔語法
間隔必須以 '(' 或 '[' 開頭,後接開始值,然後是逗號 (',')、結束值,最後是關閉 ')' 或 ']'。
例如
-
(1,10) → 將包含大於 1 且小於 10 的值
-
[1,10) → 將包含大於或等於 1 且小於 10 的值
-
[1,10] → 將包含大於或等於 1 且小於或等於 10 的值
起始值和結束值不能為空。
如果間隔需要無界限,則特殊字元 *
可以同時用於開始和結束限制。使用此特殊字元時,起始語法選項 ((
和 [
) 和結束語法選項 ()
和 ]
) 將會被視為相同。[*,*]
將會包含欄位中具有值的所有文件。
間隔限制可以是字串,但不需要加上引號。逗號之前的所有文字都將被視為開始限制,之後的文字將會是結束限制。例如:[Buenos Aires,New York]
。請記住,將會執行類似字串的比較,以比對字串間隔中的文件 (區分大小寫)。比較器無法變更。
逗號、括號和方括號可以使用前面的 \
逸出。數值之前和之後的空白字元將會省略。
開始限制不能大於結束限制。允許相等限制,這可讓您指出您想要計算的特定值,例如 [A,A]
、[B,B]
和 [C,Z]
。
間隔分面支援以下所述的輸出金鑰取代。輸出金鑰可以在 facet.interval
參數和 facet.interval.set
參數中取代。例如
&facet.interval={!key=popularity}some_field
&facet.interval.set={!key=bad}[0,5]
&facet.interval.set={!key=good}[5,*]
&facet=true
分面的本地參數
LocalParams 語法 允許覆寫全域設定。它也可以提供一種方法,將中繼資料新增至其他參數值,很像 XML 屬性。
標記和排除篩選器
您可以標記特定的篩選器,並在分面時排除這些篩選器。這在執行多選分面時很有用。
考慮以下帶有分面的範例查詢
q=mainquery&fq=status:public&fq=doctype:pdf&facet=true&facet.field=doctype
由於所有內容都已受到篩選器 doctype:pdf
的限制,因此 facet.field=doctype
分面命令目前是多餘的,並且會針對 doctype:pdf
以外的所有內容傳回 0 個計數。
為了為 doctype 實作多選分面,GUI 可能仍會想要顯示其他 doctype 值及其相關聯的計數,就好像尚未套用 doctype:pdf
限制一樣。例如
=== Document Type ===
[ ] Word (42)
[x] PDF (96)
[ ] Excel(11)
[ ] HTML (63)
若要傳回目前未選取之 doctype 值的計數,請標記直接限制 doctype 的篩選器,並在對 doctype 執行分面時排除這些篩選器。
q=mainquery&fq=status:public&fq={!tag=dt}doctype:pdf&facet=true&facet.field={!ex=dt}doctype
所有類型的分面都支援篩選器排除。tag
和 ex
本地參數都可以透過逗號分隔指定多個值。
變更輸出金鑰
若要變更分面命令的輸出金鑰,請使用 key
本地參數指定新名稱。例如
facet.field={!ex=dt key=mylabel}doctype
上述參數設定會導致「doctype」欄位的欄位分面結果在回應中使用金鑰 "mylabel" 而不是 "doctype" 傳回。當多次使用不同的排除對同一個欄位執行分面時,這可能會很有幫助。
使用特定詞彙限制分面
若要使用特定詞彙限制欄位分面,請使用 terms
本地參數以逗號分隔指定它們。詞彙中的逗號和引號可以使用反斜線逸出,如 \,
中所示。在這種情況下,會以類似於 facet.method=enum
的方式計算分面,但會忽略 facet.enum.cache.minDf
。例如
facet.field={!terms='alfa,betta,with\,with\',with space'}symbol
此本地參數會覆寫 facet.sort
的預設邏輯。如果省略 facet.sort
,則會以給定的詞彙順序傳回分面,此順序可能會使用 index
和 count
值變更。注意:當提供此參數時,可能不完全支援其他參數。