Solr 包含的欄位類型

下表列出 Solr 中可用的建議欄位類型。本頁面下方進一步列出了從舊版 Solr 遷移的使用者適用的所有已棄用類型。 org.apache.solr.schema 套件包含此表中列出的所有類別。

類別 描述

BBoxField

為每個文件欄位索引單個矩形(邊界框),並支援透過邊界框進行搜尋。請參閱空間搜尋章節以瞭解更多資訊。

BinaryField

二進位資料。

BoolField

包含 true 或 false。第一個字元為 1tT 的值會被解譯為 true。第一個字元中的任何其他值都會被解譯為 false

CollationField

支援用於排序和範圍查詢的 Unicode 校對。如果您可以使用 ICU4J,則 ICUCollationField 會是更好的選擇。請參閱Unicode 校對章節以瞭解更多資訊。

CurrencyFieldType

支援貨幣和匯率。請參閱貨幣和匯率章節以瞭解更多資訊。

DateRangeField

支援索引日期範圍,包括時間點日期實例(單毫秒持續時間)。請參閱日期格式化和日期運算章節以瞭解有關使用此欄位類型的詳細資訊。即使僅用於日期實例,也請考慮使用此欄位類型,尤其是在查詢通常落在 UTC 年/月/日/小時等界限上的情況下。

DenseVectorField

支援浮點數值密集向量的索引。詳情請參閱密集向量搜尋章節。

DatePointField

日期欄位。代表以毫秒精度表示的時間點,使用基於「維度點」的資料結構編碼,可以非常有效地搜尋特定值或值範圍。有關支援語法的更多詳細資訊,請參閱日期格式化與日期運算章節。對於單值欄位,必須使用 docValues="true" 來啟用排序。

DoublePointField

雙精度浮點數欄位(64 位 IEEE 浮點數)。此類別使用基於「維度點」的資料結構對雙精度數值進行編碼,可以非常有效地搜尋特定值或值範圍。對於單值欄位,必須使用 docValues="true" 來啟用排序。

ExternalFileField

從磁碟上的檔案提取值。詳情請參閱外部檔案和處理程序章節。

EnumFieldType

允許定義一組枚舉值,這些值可能不易按字母或數字順序排序(例如,嚴重性列表)。此欄位類型採用設定檔,其中列出了欄位值的正確順序。詳情請參閱枚舉欄位章節。

FloatPointField

單精度浮點數欄位(32 位 IEEE 浮點數)。此類別使用基於「維度點」的資料結構對單精度數值進行編碼,可以非常有效地搜尋特定值或值範圍。對於單值欄位,必須使用 docValues="true" 來啟用排序。

ICUCollationField

支援 Unicode 校對,用於排序和範圍查詢。詳情請參閱Unicode 校對章節。

IntPointField

整數欄位(32 位帶符號整數)。此類別使用基於「維度點」的資料結構對整數值進行編碼,可以非常有效地搜尋特定值或值範圍。對於單值欄位,必須使用 docValues="true" 來啟用排序。

LatLonPointSpatialField

緯度/經度坐標對;可能是多值的,用於表示多個點。通常以「緯度,經度」的順序用逗號分隔指定。詳情請參閱空間搜尋章節。

LongPointField

長整數欄位(64 位帶符號整數)。此類別使用基於「維度點」的資料結構對 foo 值進行編碼,可以非常有效地搜尋特定值或值範圍。對於單值欄位,必須使用 docValues="true" 來啟用排序。

NestPathField

使用巢狀文件時,儲存增強資訊的特殊欄位類型。

PointType

單值的 n 維點。它既用於排序緯度經度的空間資料,也用於一些較為罕見的使用案例。(注意:這與基於「點」的數字欄位無關)。詳情請參閱空間搜尋

PreAnalyzedField

提供一種將序列化符記串流傳送到 Solr 的方法,可選擇包含欄位的獨立儲存值,並在不進行任何額外文字處理的情況下儲存和索引此資訊。

PreAnalyzedField 的組態和用法記錄在PreAnalyzedField 類型章節中。

RandomSortField

不包含值。對此欄位類型進行排序的查詢將以隨機順序返回結果。使用動態欄位來使用此功能。

RankField

可用於儲存評分因素以改進文件排名。與RankQParserPlugin結合使用。

RptWithGeometrySpatialField

SpatialRecursivePrefixTreeFieldType 的衍生版本,它還會儲存原始幾何圖形。詳情請參閱空間搜尋以及搭配地理空間結果轉換器的用法。

SortableTextField

TextField 的特殊版本,允許(且預設為)docValues="true",以便在分析之前對原始字串的前 1024 個字元進行排序。用於排序的字元數可以使用 maxCharsForDocValues 屬性覆寫。詳情請參閱排序參數討論

SpatialRecursivePrefixTreeFieldType

(簡稱 RPT)接受緯度逗號經度字串或 WKT 格式的其他形狀。詳情請參閱空間搜尋

StrField

字串(UTF-8 編碼字串或 Unicode)。已索引的 indexed="true" 字串適用於小欄位,且以任何方式進行符記化或分析。它們的硬性限制略小於 32K。未索引的 indexed="false" 和非 DocValues docValues="false" 字串適用於儲存大型字串。

TextField

文字,通常是多個單字或符記。在正常使用情況下,只有 TextField 或 SortableTextField 類型的欄位會指定分析器

UUIDField

通用唯一識別碼 (UUID)。傳入 NEW 的值,Solr 將建立新的 UUID。

注意:當使用 SolrCloud 時,對於大多數使用者而言,不建議將 UUIDField 實例設定為 NEW 的預設值(如果 UUID 值被設定為唯一鍵欄位,則無法使用),因為結果是每個文件的每個副本都會取得唯一的 UUID 值。建議改為在新增文件時使用 UUIDUpdateProcessorFactory 來產生 UUID 值。

已棄用的欄位類型

所有 Trie* 數值和日期欄位類型都已棄用,改用 *Point 欄位類型。Point 欄位類型在範圍查詢方面表現更好(速度、記憶體、磁碟),但簡單的 field:value 查詢的效能不如 Trie。您可以接受此點,或繼續使用 Trie 欄位。此缺點可能會在未來的版本中得到解決。
類別 描述

CurrencyField

請改用 CurrencyFieldType。

EnumField

請改用 EnumFieldType。

TrieDateField

請改用 DatePointField。

TrieDoubleField

請改用 DoublePointField。

TrieFloatField

請改用 FloatPointField。

TrieIntField

請改用 IntPointField。

TrieLongField

請改用 LongPointField。

TrieField

此欄位採用 type 參數來定義要使用的 Trie* 欄位的特定類別;請改用適當的 Point 欄位類型。